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() ซึ่งค่อนข้างสะดวกสำหรับการรวมกลุ่มของสตริงที่มีตัวคั่น

ดูเพิ่มเติม