2012-03-17 2 views
7

가능한 중복 :
Java string replace and the NUL (NULL, ASCII 0) character?Java에서 char zero (0)의 의미는 무엇입니까?

내가 자바의 일부 문자열 알고리즘을하고 있어요 그리고 난 내가 0 (영)의 값을 가진 문자를 포함 곳에는 마크 것으로 나타났습니다 String의 끝. 이와 같이 :

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

왜 그런가?

+1

Null 문자 : http://en.wikipedia.org/wiki/Null_character –

답변

10

문자 '\0'은 널 문자입니다. 그 문자열은 자바 (. 그들은 C에서 작동하는 방식 즉, 비록입니다) 몇 가지 추가 통찰력을위한

2

에서 작동하는 방법이 아니다, 제어 문자, 그리고 그것을 문자열을 종료하지 않는 코드 당신에 다음을 추가

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

렌더링 시스템 (콘솔 또는 출력 창)에 모든 것이 표시되지 않습니다.

0

실제 코드를 게시했는지 궁금합니다. String(byte[]) 생성자를 사용할 때 문자열의 실제 길이는 배열의 내용에 따라 다릅니다.

관련 문제