2012-06-07 10 views
5

Estoy tratando de replicar this en Java. Para guardar el clic, dice que una matriz de caracteres ['F', 'R', 'A', 'N', 'K', NULL, 'k', 'e', 'f', 'w'], cuando se convierte en una cadena terminada en nulo, se detendrá después de 'K', ya que allí encuentra un puntero nulo. Sin embargo, mis intentos de Java no parecen estar funcionando.Terminar un char [] -> Cadena de conversión a medio camino a través de un puntero nulo

public class TerminatingStrings{ 
    public static void main(String[] args){ 
     char[] broken = new char[3]; 
     broken[0] = 'a'; 
     broken[1] = '\u0000'; 
     broken[2] = 'c'; 
     String s = new String(broken); 
     System.out.println(s); 
    } 
} 

Impresiones ac. Aparte de esto, también he intentado (1) no inicializar broken[1] y (2) establecerlo explícitamente como nulo, en un intento que ni siquiera compiló.

¿Es esto posible en absoluto en Java? ¿O tal vez mi comprensión de las cosas está mal?

Respuesta

6

A diferencia de C, Java no utiliza cadenas terminadas en NUL. Para obtener el comportamiento, su código tiene que encontrar la ubicación del primer \0 en la matriz char, y detenerse ahí al construir la cadena.

+1

exactamente. null! = NUL –

Cuestiones relacionadas