0Pricing
Java Academy · บทเรียน

การสร้างข้อความด้วย StringBuilder

การต่อข้อความอย่างมีประสิทธิภาพ

การสร้างข้อความด้วย StringBuilder เป็นบทเรียน Java Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Java Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Java Academy มีบทเรียนทั้งหมด 4 บทเรียน

ตัวสร้างสตริงที่เปลี่ยนแปลงได้

StringBuilder เป็นลำดับอักขระที่เปลี่ยนแปลงได้ ต่างจาก String ตรงที่คุณสามารถเปลี่ยนเนื้อหาได้โดยตรง ทำให้การสร้างข้อความมีประสิทธิภาพ

การสร้าง StringBuilder

สร้างออบเจ็กต์ด้วย new StringBuilder() สำหรับตัวสร้างว่าง หรือส่งข้อความเริ่มต้นเข้าไปเพื่อเริ่มต้นพร้อมเนื้อหา

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        StringBuilder named = new StringBuilder("Hello");
        System.out.println("empty length: " + sb.length());
        System.out.println("named: " + named);
    }
}

การต่อข้อความ

เมธอด append จะเพิ่มเนื้อหาต่อท้าย โดยรับได้ทั้งสตริง ตัวเลข อักขระ ค่าบูลีน และข้อมูลชนิดอื่น ๆ

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        sb.append("Count: ");
        sb.append(5);
        sb.append(' ');
        sb.append(true);
        System.out.println(sb);
    }
}

การเชื่อมเมธอด

append จะส่งคืนตัวสร้างเดิม จึงสามารถเรียกต่อกันได้อย่างลื่นไหลภายในนิพจน์เดียว

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        sb.append("a").append("b").append("c").append(123);
        System.out.println(sb);
    }
}

การสร้างข้อความในลูป

นี่คือกรณีการใช้งานหลัก คุณสามารถต่อข้อความภายในลูปได้โดยไม่ต้องสร้างออบเจ็กต์ใหม่ทุกครั้ง แล้วจึงแปลงเพียงครั้งเดียวเมื่อสิ้นสุด

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        for (int i = 1; i <= 10; i++) {
            sb.append(i).append(' ');
        }
        System.out.println(sb.toString().trim());
    }
}

การแปลงเป็นสตริง

เรียกใช้ toString() เพื่อรับ String แบบไม่เปลี่ยนแปลงออกจากตัวสร้าง เมื่อแก้ไขเสร็จแล้ว

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("result");
        String finalText = sb.toString();
        System.out.println(finalText.toUpperCase());
    }
}

การเชื่อมด้วยตัวคั่น

คุณสามารถสร้างรายการที่คั่นด้วยจุลภาคได้โดยต่อ ตัวคั่นระหว่างแต่ละรายการ และจัดการรายการสุดท้ายอย่างระมัดระวัง

public class Main {
    public static void main(String[] args) {
        String[] names = {"Ann", "Ben", "Cara"};
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < names.length; i++) {
            sb.append(names[i]);
            if (i < names.length - 1) {
                sb.append(", ");
            }
        }
        System.out.println(sb);
    }
}

การอ่านความยาว

length() บอกจำนวนอักขระที่ตัวสร้างมีอยู่ในขณะนั้น และจะอัปเดตเมื่อคุณใช้ append

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        sb.append("12345");
        System.out.println("Length: " + sb.length());
    }
}

การเข้าถึงอักขระ

ใช้ charAt(index) เพื่ออ่านอักขระเดี่ยวตามตำแหน่ง เช่นเดียวกับการอ่านจาก String

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("Coddy");
        System.out.println("First: " + sb.charAt(0));
        System.out.println("Last: " + sb.charAt(sb.length() - 1));
    }
}

capacity เทียบกับความยาว

ตัวสร้างจะเก็บบัฟเฟอร์ภายในที่เรียกว่าความจุ ซึ่งขยายโดยอัตโนมัติ คุณสามารถส่งค่า capacity เริ่มต้นเพื่อลดการปรับขนาด หากทราบขนาดสุดท้ายล่วงหน้า

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder(100);
        sb.append("short");
        System.out.println("Length: " + sb.length());
        System.out.println("Capacity at least: " + (sb.capacity() >= 100));
    }
}

ตัวสร้างที่ใช้งานได้จริง

เมื่อนำทุกอย่างมารวมกัน คุณสามารถสร้างสตริงรายงานขนาดเล็กได้อย่างมีประสิทธิภาพด้วยการต่อข้อความแบบเชื่อมเมธอดและการใช้ลูป

public class Main {
    public static void main(String[] args) {
        int[] sales = {100, 250, 75};
        StringBuilder report = new StringBuilder("Sales Report\n");
        int total = 0;
        for (int i = 0; i < sales.length; i++) {
            report.append("Day ").append(i + 1).append(": ").append(sales[i]).append('\n');
            total += sales[i];
        }
        report.append("Total: ").append(total);
        System.out.println(report);
    }
}

ตรวจสอบอย่างรวดเร็ว

เหตุใด StringBuilder จึงมีประสิทธิภาพมากกว่าการต่อสตริงซ้ำ ๆ ด้วย + ในลูป

ทบทวน

คุณได้เรียนรู้การสร้างสตริงด้วย StringBuilder ดังนี้:

  • เป็นลำดับอักขระที่เปลี่ยนแปลงได้
  • append เพิ่มเนื้อหาและรองรับการเชื่อมเมธอด
  • เหมาะอย่างยิ่งสำหรับการสร้างข้อความในลูป
  • เรียกใช้ toString() เพื่อรับ String สุดท้าย
  • การกำหนดค่า capacity เริ่มต้นช่วยหลีกเลี่ยงการปรับขนาด

คำถามที่พบบ่อย

บทเรียน “การสร้างข้อความด้วย StringBuilder” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การสร้างข้อความด้วย StringBuilder” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Java Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Java Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การสร้างข้อความด้วย StringBuilder”

การต่อข้อความอย่างมีประสิทธิภาพ คุณปฏิบัติ Java Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Java Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Java Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การสร้างข้อความด้วย StringBuilder” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Java Academy นี้ได้ไหม

ได้ บทเรียน Java Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เหตุใด String จึงเปลี่ยนแปลงไม่ได้
  2. การสร้างข้อความด้วย StringBuilder
  3. เมธอดของ StringBuilder
  4. StringBuilder เทียบกับ StringBuffer
← กลับไปที่ Java Academy