2013-04-29 14 views

Odpowiedz

14

Zastosowanie StringBuilder:

String str; 
Char a, b, c; 
a = 'i'; 
b = 'c'; 
c = 'e'; 

StringBuilder sb = new StringBuilder(); 
sb.append(a); 
sb.append(b); 
sb.append(c); 
str = sb.toString(); 

One-liner:

new StringBuilder().append(a).append(b).append(c).toString(); 

Doing ""+a+b+c daje:

new StringBuilder().append("").append(a).append(b).append(c).toString(); 

Pytałem jakiś czas temu related question.

+0

To może być trochę ciężki, ale prawdopodobnie to, co bym użył ... – Lucas

+0

To jest całkowicie sposób, aby to zrobić. –

0

pomocą metody Character.toString(char).

15

Zastosowanie str = ""+a+b+c;

Tutaj pierwszej + jest String concat, więc wynik będzie String. Uwaga: ważne jest, gdzie znajduje się "".

Albo (być może) lepiej, użyj StringBuilder.

+0

Ignoruj ​​StringBuilder, że metoda jest idealna – mbehan

+0

Does StringBuilder oferuje jakieś wrodzone zalety w stosunku do 'str =" "+ a + b + c;'? –

+1

@mbehan, Kompilator prawdopodobnie zoptymalizuje to podejście do StringBuilder. – Lucas

0

Spróbuj tego:

str = String.valueOf(a)+String.valueOf(b)+String.valueOf(c); 

wyjściowa:

ice 
5

Można użyć StringBuilder:

StringBuilder sb = new StringBuilder(); 
    sb.append('a'); 
    sb.append('b'); 
    sb.append('c'); 
    String str = sb.toString() 

Lub jeśli masz już znaki, można przekazać tablicę znaków do konstruktora String:

String str = new String(new char[]{'a', 'b', 'c'}); 
+1

+1 dla tablicy w konstruktorze. –

+0

Jeśli masz już znaki, dlaczego nie po prostu 'String str =" abc ";' i unikasz gadatliwości literalnej tablicy znaków i instancji string? –

Powiązane problemy