Mam char
i potrzebuję String
. Jak przekonwertować z jednego na drugi?
java
string
char
type-conversion
Landon Kuhn
źródło
źródło
Odpowiedzi:
Możesz użyć
Character.toString(char)
. Zauważ, że ta metoda po prostu zwraca wywołanieString.valueOf(char)
, które również działa.Jak zauważyli inni, konkatenacja łańcuchów znaków działa również jako skrót:
Ale to kompiluje się do:
co jest mniej wydajne, ponieważ
StringBuilder
jest on wspierany przezchar[]
(nadmiernie przydzielony przezStringBuilder()
to16
), tylko dla tej tablicy, która jest obronnie kopiowana przez wynikowyString
.String.valueOf(char)
„dostaje się do tylnych drzwi” przez zawinięciechar
tablicy jednoelementowej i przekazanie jej prywatnemu konstruktorowi pakietuString(char[], boolean)
, co pozwala uniknąć kopiowania tablicy.źródło
new StringBuilder("").append('s').toString();
Dobre pytanie. Mam do dyspozycji
pięćnastępujących 6 metod.String.valueOf(char[] value)
wywołujenew String(char[] value)
, co z kolei ustawiavalue
tablicę char.Z drugiej strony
String.valueOf(char value)
wywołuje następujący pakiet prywatny konstruktor.Kod źródłowy
String.java
w języku Java kodu źródłowego 8źródło
Poniżej znajdują się różne sposoby konwersji na char c na String s (w malejącej kolejności prędkości i wydajności)
źródło
Użyj
Character.toString()
metody w ten sposób:źródło
Użyj dowolnego z poniższych:
źródło
Jak stwierdził @WarFox - istnieje 6 metod konwersji znaków na ciąg znaków. Jednak najszybszy byłby poprzez konkatenację, pomimo odpowiedzi powyżej stwierdzających, że tak jest
String.valueOf
. Oto punkt odniesienia, który dowodzi, że:I wynik:
Jak widać, najszybszym będzie
c + ""
lub"" + c
;Ta różnica w wydajności wynika z
-XX:+OptimizeStringConcat
optymalizacji. Możesz przeczytać o tym tutaj .źródło
Spróbuj tego:
Character.toString(aChar)
lub tylko tego:aChar + ""
źródło
Mamy różne sposoby konwersji
char
naString
. Jednym ze sposobów jest użycie metody statycznejtoString()
wCharacter
klasie:W rzeczywistości ta
toString
metoda wewnętrznie korzysta zvalueOf
metody zString
klasy, która korzysta z tablicy char:Tak więc drugim sposobem jest użycie tego bezpośrednio:
Ta
valueOf
metoda wString
klasie wykorzystuje tablicę char:Tak więc trzecia droga jest, aby korzystanie z anonimowej tablicy zawijać pojedynczy znak, a następnie przekazanie go do
String
konstruktora:Czwartym sposobem jest wykorzystanie konkatenacji:
To faktycznie wykorzysta
append
metodę zStringBuilder
klasy, która jest faktycznie preferowana, gdy wykonujemy konkatenację w pętli.źródło
Oto kilka metod, w żadnej kolejności:
źródło
Konwertuję Char Array na String
źródło
Wypróbowałem te sugestie, ale ostatecznie wdrożyłem je w następujący sposób
źródło