2012-03-17 5 views
7

可能性の重複:
Java string replace and the NUL (NULL, ASCII 0) character?Javaのchar zero(0)の意味は何ですか?

は、私はJavaでいくつかの文字列のアルゴリズムをやっている、と私は0(ゼロ)の値を持つ文字が含まどこそれがマークしていることに気づきましたストリングの終わり。このように:

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

この現象の原因は何ですか?

+1

ヌル文字:http://ja.wikipedia.org/wiki/Null_character –

答えて

10

文字'\0'はヌル文字です。これは、制御文字だし、それは(つまり、彼らはしかし、C言語でどのように動作するかだ。)それは文字列は、Javaでどのように動作するかではないですが、文字列を終了しない

2

いくつかの追加の洞察力のために、あなたのコードに次の行を追加します。

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

レンダリングシステム(コンソールまたは出力ウィンドウ)にすべてが表示されていません。

0

実際のコードを掲載しているのですか? String(byte[])コンストラクタを使用する場合、文字列の実際の長さは配列の内容に依存します。

関連する問題