Java:
การต่อสตริง
วิธีการ:
นี่คือคำแนะนำเบื้องต้นในการต่อสตริงใน Java:
public class StringConcatenationDemo {
public static void main(String[] args) {
String firstName = "John";
String lastName = "Doe";
// การใช้ operator บวก
String fullName = firstName + " " + lastName;
System.out.println(fullName); // ผลลัพธ์: John Doe
// การใช้เมธอด concat()
String anotherFullName = firstName.concat(" ").concat(lastName);
System.out.println(anotherFullName); // ผลลัพธ์: John Doe
// การใช้ StringBuilder สำหรับการต่อสตริงหลายครั้ง
StringBuilder builder = new StringBuilder();
builder.append(firstName).append(" ").append(lastName);
System.out.println(builder.toString()); // ผลลัพธ์: John Doe
}
}
ลงลึก
การต่อสตริงดูเหมือนจะเรียบง่ายใช่ไหม? มันอยู่ใน Java ตั้งแต่เริ่มต้น และเรามีหลายวิธีในการทำมัน ในเวอร์ชัน Java เริ่มแรกใช้ StringBuilder เบื้องหลังการต่อสตริงด้วย +
แล้วมาถึง Java 5 และเรื่องราวก็มีประสิทธิภาพมากขึ้นด้วยการนำเสนอ StringJoiner
และการปรับปรุงเพิ่มเติมของคลาส StringBuilder
ตอนนี้ คุณอาจสงสัยว่าทำไมไม่ใช้ operator +
เสมอไปถ้ามันเป็นเรื่องเดียวกัน? ปรากฎว่า +
เหมาะสำหรับงานเร็วๆ กับสตริงขนาดเล็กหรือการต่อไม่กี่ครั้ง แต่ในขณะที่ทำงานอยู่เบื้องหลัง อาจทำให้เสียประสิทธิภาพถ้าคุณใช้มันในลูปที่มีการทำซ้ำจำนวนมากเนื่องจากมันสร้างวัตถุชั่วคราวก่อนที่จะได้สตริงเวอร์ชันสุดท้าย
ในกรณีที่มีการทำงานหนักๆ เข้ามา StringBuilder
หรือ StringBuffer
เป็นตัวเลือก โดยที่ StringBuilder
มักจะเร็วกว่าเพราะไม่มีการเชื่อมต่อ—ทำให้มันไม่ปลอดภัยต่อเธรดแต่เร็วขึ้น StringBuffer
เป็นตัวเลือกที่เก่ากว่า ปลอดภัยต่อเธรด มันช้าลงเนื่องจากความต้องการในการเชื่อมต่อ เลือกตามความต้องการเรื่องความปลอดภัยของเธรด
สำหรับเมธอด concat()
มันเป็นวิธีการที่ตรงไปตรงมาแต่ไม่ยืดหยุ่นเท่า StringBuilder
ต้องการที่จะลูปและเพิ่มสตริงเพิ่มเติม? concat()
ไม่ค่อยสะดวก
สำหรับ Java 8 และเวอร์ชันที่ใหม่กว่า เรายังมี String.join()
ซึ่งค่อนข้างสะดวกสำหรับการรวมกลุ่มของสตริงที่มีตัวคั่น