У меня есть char
и мне нужна String
. Как мне конвертировать из одного в другое?
java
string
char
type-conversion
Лэндон Кун
источник
источник
Ответы:
Вы можете использовать
Character.toString(char)
. Обратите внимание, что этот метод просто возвращает вызовString.valueOf(char)
, который также работает.Как уже отмечалось, конкатенация строк также работает как ярлык:
Но это сводится к:
который менее эффективен, потому что
StringBuilder
он поддерживаетсяchar[]
(перераспределенStringBuilder()
на16
) только для того, чтобы массив был защитно скопирован полученным результатомString
.String.valueOf(char)
«попадает в заднюю дверь», оборачиваяchar
в массив из одного элемента и передавая его частному конструктору пакетаString(char[], boolean)
, что позволяет избежать копирования массива.источник
new StringBuilder("").append('s').toString();
Хороший вопрос У меня есть следующие
пять6 способов сделать это.String.valueOf(char[] value)
вызываетnew String(char[] value)
, который в свою очередь устанавливаетvalue
массив символов.С другой стороны,
String.valueOf(char value)
вызывает следующий частный конструктор пакета.Исходный код из
String.java
в Java 8 исходного кодаисточник
Ниже приведены различные способы преобразования в char c в String s (в порядке убывания скорости и эффективности).
источник
Используйте
Character.toString()
метод так:источник
Используйте любое из следующего:
источник
Как сказал @WarFox - есть 6 способов конвертировать char в строку. Тем не менее, самый быстрый будет через конкатенацию, несмотря на ответы выше, что это так
String.valueOf
. Вот тест, который доказывает, что:И результат:
Как видите, самым быстрым будет
c + ""
или"" + c
;Эта разница в производительности связана с
-XX:+OptimizeStringConcat
оптимизацией. Вы можете прочитать об этом здесь .источник
Попробуйте это:
Character.toString(aChar)
или только это:aChar + ""
источник
У нас есть различные способы конвертировать
char
вString
. Одним из способов является использование статического методаtoString()
вCharacter
классе:На самом деле этот
toString
метод внутренне используетvalueOf
метод изString
класса, который использует массив char:Таким образом , второй способ использовать это непосредственно:
Этот
valueOf
метод вString
классе использует массив char:Таким образом, третий способ - использовать анонимный массив для переноса одного символа, а затем передать его
String
конструктору:Четвёртый способ заключается в использовании конкатенации:
Это на самом деле будет использовать
append
метод изStringBuilder
класса, который на самом деле предпочтительнее, когда мы делаем конкатенацию в цикле.источник
Вот несколько методов в произвольном порядке:
источник
Я конвертирую Char Array в String
источник
Я попробовал предложения, но в итоге реализовал его следующим образом
источник