การสร้างข้อความด้วย 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เหตุใด String จึงเปลี่ยนแปลงไม่ได้
- การสร้างข้อความด้วย StringBuilder
- เมธอดของ StringBuilder
- StringBuilder เทียบกับ StringBuffer