Eu tenho um char
e preciso de um String
. Como faço para converter de um para o outro?
java
string
char
type-conversion
Landon Kuhn
fonte
fonte
Respostas:
Você pode usar
Character.toString(char)
. Observe que esse método simplesmente retorna uma chamada paraString.valueOf(char)
, o que também funciona.Como outros observaram, a concatenação de strings também funciona como um atalho:
Mas isso se resume a:
o que é menos eficiente porque
StringBuilder
é apoiado por umchar[]
(superalocado porStringBuilder()
para16
), apenas para que essa matriz seja copiada defensivamente pelo resultadoString
.String.valueOf(char)
"entra pela porta dos fundos" envolvendo achar
matriz em um único elemento e passando-a para o construtor privado do pacoteString(char[], boolean)
, o que evita a cópia da matriz.fonte
new StringBuilder("").append('s').toString();
Boa pergunta. Eu tenho os seguintes
cinco6 métodos para fazê-lo.String.valueOf(char[] value)
chamanew String(char[] value)
, que por sua vez define avalue
matriz char.Por outro lado,
String.valueOf(char value)
invoca o seguinte construtor privado de pacotes.O código-fonte a partir
String.java
de Java de código fonte 8fonte
Abaixo estão várias maneiras de converter para char c em String s (em ordem decrescente de velocidade e eficiência)
fonte
Use o
Character.toString()
método da seguinte maneira:fonte
Use qualquer um dos seguintes:
fonte
Como @WarFox afirmou - existem 6 métodos para converter char em string. No entanto, o mais rápido seria via concatenação, apesar das respostas acima afirmando que é
String.valueOf
. Aqui está uma referência que prova que:E resultado:
Como você pode ver, o mais rápido seria
c + ""
ou"" + c
;Essa diferença de desempenho é devido à
-XX:+OptimizeStringConcat
otimização. Você pode ler sobre isso aqui .fonte
Tente isto:
Character.toString(aChar)
ou apenas isto:aChar + ""
fonte
Temos várias maneiras de converter um
char
paraString
. Uma maneira é fazer uso do método estáticotoString()
naCharacter
classe:Na verdade, este
toString
método utiliza internamente ovalueOf
método daString
classe que faz uso da matriz char:Então, a segunda maneira é usar isso diretamente:
Este
valueOf
método naString
classe faz uso da matriz char:Portanto, a terceira maneira é usar uma matriz anônima para quebrar um único caractere e depois passá-lo ao
String
construtor:A quarta maneira é fazer uso da concatenação:
Isso realmente fará uso do
append
método daStringBuilder
classe que é realmente preferido quando estivermos fazendo concatenação em um loop.fonte
Aqui estão alguns métodos, em nenhuma ordem específica:
fonte
Estou convertendo Char Array para String
fonte
Eu tentei as sugestões, mas acabei implementando da seguinte forma
fonte