Tengo un char
y necesito un String
. ¿Cómo me convierto de uno a otro?
java
string
char
type-conversion
Landon Kuhn
fuente
fuente
Respuestas:
Puedes usar
Character.toString(char)
. Tenga en cuenta que este método simplemente devuelve una llamada aString.valueOf(char)
, que también funciona.Como otros han señalado, la concatenación de cadenas también funciona como un atajo:
Pero esto se resume en:
que es menos eficiente porque
StringBuilder
está respaldado por unchar[]
(sobreasignado porStringBuilder()
to16
), solo para que esa matriz sea copiada defensivamente por el resultadoString
.String.valueOf(char)
"entra por la puerta trasera" al envolverlochar
en una matriz de un solo elemento y pasarlo al constructor privado del paqueteString(char[], boolean)
, lo que evita la copia de la matriz.fuente
new StringBuilder("").append('s').toString();
Buena pregunta. Tengo los siguientes
cinco6 métodos para hacerlo.String.valueOf(char[] value)
invocanew String(char[] value)
, que a su vez establece lavalue
matriz de caracteres.Por otro lado
String.valueOf(char value)
invoca el siguiente paquete constructor privado.El código fuente de
String.java
en Java de código fuente 8fuente
A continuación se muestran varias formas de convertir de char a String s (en orden decreciente de velocidad y eficiencia)
fuente
Use el
Character.toString()
método de esta manera:fuente
Use cualquiera de los siguientes:
fuente
Como dijo @WarFox: hay 6 métodos para convertir char en cadena. Sin embargo, el más rápido sería a través de la concatenación, a pesar de las respuestas anteriores que indican que es así
String.valueOf
. Aquí hay un punto de referencia que demuestra que:Y resultado:
Como puede ver, el más rápido sería
c + ""
o"" + c
;Esta diferencia de rendimiento se debe a la
-XX:+OptimizeStringConcat
optimización. Puedes leer sobre esto aquí .fuente
Prueba esto:
Character.toString(aChar)
o solo esto:aChar + ""
fuente
Tenemos varias formas de convertir un
char
aString
. Una forma es hacer uso del método estáticotoString()
enCharacter
clase:En realidad, este
toString
método utiliza internamente elvalueOf
método de laString
clase que hace uso de la matriz char:Entonces, la segunda forma es usar esto directamente:
Este
valueOf
método enString
clase hace uso de la matriz de caracteres:Entonces, la tercera forma es hacer uso de una matriz anónima para envolver un solo carácter y luego pasarlo al
String
constructor:La cuarta forma es hacer uso de la concatenación:
En realidad, esto hará uso del
append
método de laStringBuilder
clase, que es realmente preferido cuando hacemos concatenación en un bucle.fuente
Aquí hay algunos métodos, sin ningún orden en particular:
fuente
Estoy convirtiendo Char Array en String
fuente
He probado las sugerencias pero terminé implementándolo de la siguiente manera
fuente