2012-06-07 7 views
5

Próbuję skopiować this w Javie. Aby zapisać kliknięcie, mówi, że tablica znaków ['F', 'R', 'A', 'N', 'K', NULL, 'k', 'e', 'f', 'w'], po przekonwertowaniu na łańcuch zakończony znakiem NUL, zatrzyma się po 'K', ponieważ napotka tam wskaźnik zerowy. Jednak moje próby Java nie działają.Zakończyć znak [] -> Konwersja ciągu w połowie za pomocą wskaźnika pustego

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); 
    } 
} 

Nadruki ac. Poza tym próbowałem (1) nie inicjować broken[1] i (2) jawnie ustawiając go na wartość null, przy próbie, która nawet nie kompilowała.

Czy to w ogóle możliwe w Javie? A może moje rozumienie rzeczy jest złe?

Odpowiedz

6

W przeciwieństwie do C, Java nie używa łańcuchów zakończonych znakiem NUL. Aby uzyskać to zachowanie, twój kod musi znaleźć lokalizację pierwszego \0 w tablicy znaków i zatrzymać się przy tworzeniu ciągu znaków.

+1

dokładnie. null! = NUL –

Powiązane problemy