Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Chèn chuỗi vào đầu chuỗi khác trong Java (2 cách)

Java String immutable – cần tạo chuỗi mới khi chèn.

Cách 1: StringBuilder.append() – Khuyên dùng


public static String prepend(String original, String prefix) {
    return new StringBuilder(prefix).append(original).toString();
}

// Sử dụng
String result = prepend("world", "hello "); // "hello world"

Cách 2: Toán tử + (concat) – Đơn giản cho 1 lần


String result = prefix + original;

Cách 3: char[] manual (hiểu bản chất)


public static String prependCharArray(String original, String prefix) {
    char[] result = new char[original.length() + prefix.length()];
    // copy prefix
    for (int i = 0; i < prefix.length(); i++) {
        result[i] = prefix.charAt(i);
    }
    // copy original
    for (int i = 0; i < original.length(); i++) {
        result[prefix.length() + i] = original.charAt(i);
    }
    return new String(result);
}

So sánh

Phương phápĐộ phức tạpHiệu năngKhuyên dùng
StringBuilderO(n+m)Tốt✅ Chung
+ operatorO(n+m)Tốt (compile-time optimize)✅ Đơn giản
char[] manualO(n+m)Tốt nhất (no intermediate)Low-level
StringBufferO(n+m)Chậm hơn (sync)Thread-safe

Ví dụ tương tác


import java.util.Scanner;

public class PrependDemo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Chuỗi gốc: ");
        String s1 = sc.nextLine();
        System.out.print("Chuỗi chèn đầu: ");
        String s2 = sc.nextLine();
        
        String result = new StringBuilder(s2).append(s1).toString();
        System.out.println("Kết quả: " + result);
    }
}

Kết quả


Chuỗi gốc: krishna
Chuỗi chèn đầu: kasyap
Kết quả: kasyapkrishna

Lưu ý: Tránh lặp s = prefix + s trong vòng lặp – tạo nhiều object rác. Dùng StringBuilder ngoài vòng lặp.