2013-03-21 60 views

Trả lời

11

Sử dụng StringBuilder hoặc StringBuffer nhưng có đủ khả năng ban đầu để tránh phân bổ lại. Dung lượng mặc định là 16, vì vậy khi bạn vượt quá dung lượng đó, dữ liệu phải được sao chép vào một địa điểm lớn hơn mới. Sử dụng nối thêm không +.

int integer = 5; 

StringBuilder s = new StringBuilder(100); 
s.append("something"); 
s.append(integer); 
s.append("more text"); 
+0

Cảm ơn bạn, tất cả các bạn đều đúng và đã giúp tôi! :) – Fiemhong

7

Bạn có thể sử dụng một trong hai StringBuffer hoặc StringBuilder

public class Test { 

public static void main(String args[]) { 
    StringBuffer sb = new StringBuffer("Test"); 
    sb.append(" String Buffer"); 
    System.out.println(sb); 
} 
} 

này tạo ra sau kết quả:

Test String Buffer 

StringBuilder:

StringBuilder strBuilder = new StringBuilder("foo"); 
strBuilder.append("bar"); 
strBuilder.append("baz"); 
String str = strBuilder.toString(); 

Đối với định dạng, hãy thử

String.format("Hello %1$s, your name is %1$s and the time is %2$t", name, time) 
+0

Cảm ơn bạn, tất cả các bạn đều đúng và đã giúp tôi! :) – Fiemhong

3

Bạn có thể sử dụng phương thức String.format để làm điều đó.

String test = "%d-%d-%d"; 
String.format(test, 0, 1, 2); 

Hoặc với Locale.

String.format(Locale.US, test, 0, 1, 2); 
+2

Tôi nhận được cảnh báo: Ngụ ý sử dụng ngôn ngữ mặc định là một nguồn phổ biến của lỗi: Sử dụng String.format (Locale, ...) để thay thế – Fiemhong

Các vấn đề liên quan