5

これをJavaで複製しようとしています。クリックを節約するために、null ポインターに遭遇したため['F', 'R', 'A', 'N', 'K', NULL, 'k', 'e', 'f', 'w']、null で終わる文字列に変換されると、文字配列 が の後に停止することが示されています。'K'ただし、私の Java の試みは機能していないようです。

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

それでも印刷されacます。これとは別に、(1)初期化せずbroken[1]、(2)明示的にnullに設定することも試みましたが、コンパイルさえしませんでした。

これはJavaでまったく可能ですか?それとも私の物事の理解が間違っているのでしょうか?

4

1 に答える 1

6

C とは異なり、Java は NUL で終了する文字列を使用しません。動作を取得するには、コード\0で char 配列の最初の位置を見つけ、文字列を作成するときにそこで停止する必要があります。

于 2012-06-07T15:58:17.070 に答える