2012-03-17 27 views
7

Duplicar posible:
Java string replace and the NUL (NULL, ASCII 0) character?¿Cuál es el significado de char cero (0) en Java?

estoy haciendo algunos algoritmos de Cuerda en Java, y me di cuenta que allí donde incluyo un char con el valor de 0 (cero) que marca el final de la cadena. De esta manera:

String aString = "I'm a String"; 
char[] aStringArray = aString.toCharArray(); 
aStringArray[1] = 0; 
System.out.println(new String(aStringArray)); //It outputs "I" 

¿Cuál es la razón/causa de este comportamiento?

+1

Carácter nulo: http://en.wikipedia.org/wiki/Null_character –

Respuesta

10

El carácter '\0' es el carácter nulo. Es un carácter de control, y no terminar la cadena, no es así como cadenas trabajan en Java (. Esa es la forma en que funcionan en C, sin embargo)

2

Por alguna información adicional, añada lo siguiente a su código:

System.out.println(new String(aStringArray).length()); 
for (Byte b : new String(aStringArray).getBytes()) { 
    System.out.print("["+b+"]"); 
} 

Su sistema de representación (consola o ventana de salida) no muestra todo.

0

Me pregunto si ha publicado su código actual. Cuando se utiliza el constructor String(byte[]), la longitud real de la cadena depende del contenido de la matriz.

Cuestiones relacionadas