java palabras ¿Cómo convertir una matriz char de nuevo a una cadena?



guardar palabras en un arreglo java (9)

Tengo una matriz de char:

char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};

Mi solución actual es hacer

String b = new String(a);

Pero seguramente hay una mejor manera de hacer esto?


Answer #1
String str = "wwwwww3333dfevvv";
char[] c = str.toCharArray();

Ahora para convertir la matriz de caracteres en String, hay dos formas.

Arrays.toString(c);

Devuelve la cadena [w, w, w, w, w, w, 3, 3, 3, 3, d, f, e, v, v, v] .

Y:

String.valueOf(c)

Devuelve la cadena wwwwww3333dfevvv .


Answer #2

No, esa solución es absolutamente correcta y muy mínima.

Tenga en cuenta, sin embargo, que esta es una situación muy inusual: como String se maneja especialmente en Java, incluso "foo" es en realidad una String . Por lo tanto, la necesidad de dividir un String en caracteres individuales y volver a unirlos no se requiere en el código normal.

Compare esto con C / C ++ donde "foo" tiene un paquete de caracteres terminados por un byte cero en un lado y una string en el otro lado y muchas conversiones entre ellos debido a los métodos heredados.


Answer #3

Una cadena en java es simplemente un objeto alrededor de una matriz de caracteres. Por lo tanto un

char[]

es idéntico a una cadena sin caja con los mismos caracteres. Al crear una nueva cadena a partir de su matriz de caracteres

new String(char[])

Esencialmente, le está diciendo al compilador que coloque automáticamente un objeto String alrededor de su matriz de caracteres.


Answer #4

Esto convertirá la matriz de caracteres de nuevo a la cadena:

char[] charArray = {'a', 'b', 'c'};
String str = String.valueOf(charArray);

Answer #5

Prueba esto

Arrays.toString(array)

Answer #6

También puedes usar la clase StringBuilder

String b = new StringBuilder(a).toString();

El uso de String o StringBuilder varía según los requisitos de su método.



Answer #8

String text = String.copyValueOf(data);

o

String text = String.valueOf(data);

es posiblemente mejor (encapsula la new String llamada new String ).


Answer #9

1 forma alternativa es hacer:

String b = a + "";




char