Sono in esecuzione questo codice ejava stampa char serie
char[] str = { 'a', 'b', 'c', 0, 'c', 'c', 'f' };
System.out.print(str);
System.out.println(" adksjfhak");
Questo stampa solo "abc". mentre,
char[] str = { 'a', 'b', 'c', 0, 'c', 'c', 'f' };
System.out.print(str);
System.out.println("\n adksjfhak");
stampe
abc
adksjfhak
Perché fermata buffer di stampa a zero (0) personaggio? Questo significa che Java continua semplicemente ad accorciare il carattere e a stampare quel buffer? E, naturalmente, poiché il buffer ha 0 in mezzo, elimina il resto della stringa.
Probabilmente ho risposto a una parte della mia domanda. Ma mi piacerebbe sapere maggiori dettagli su questo. Come gestisce JVM? Dov'è questo buffer di uscita? E qualche motivo per fermarsi a 0? ANCHE perché aggiungere \ n arresta questo comportamento?
Edit 1: Utilizzando JDK 1.7, Eclipse 3.8.1 e Ubuntu 13.10
Edit 2: Stranamente, questo non ha questo problema. https://ideone.com/VwFbRr
Edit 3: ho incontrato lo stesso su riga di comando
[bin]$ java com.sakura.C
abcccf adksjfhak
Questo funziona bene per me (JDK 1.7) – Christian
@Christian intendi nel primo caso, ottieni sia abc che adksjfhak? – sakura
Rispettivamente, sta stampando 'abc ccf adksjfhak' e' abc ccf \ n adksjfhak' per me. Non sono sicuro di quale sia il problema. – Matthew