2011-09-29 5 views
5

Java에서 최대 3 자이고 최소 1자인 문자열을 작성하려고합니다.문자열에서 Java null 문자

정수 배열의 내용에 따라 문자열을 작성 중이며 배열의 내용이 -1 인 경우 문자열에 null 문자를 출력하려고합니다. 그렇지 않으면 문자열에 정수의 문자 버전이 포함됩니다.

for (int i=0; i < mTypeSelection.length; i++){ 
     mMenuName[i] = (mTypeSelection[i] > -1 ? Character.forDigit(mTypeSelection[i], 10) : '\u0000'); 

    } 

내가 지금까지 가지고하지만이를 때 출력 배열에 대한 문자열 {0, -1, -1}이 아니라 그냥 문자열 "0"을 얻고있다 "0"문자열을 얻는 것보다.

아무도 내가 원하는 결과를 얻을 수있는 방법을 알고 있습니다.

감사합니다, m

+0

전체 코드를 제공 할 수 있습니까? 어떻게 결과를 출력하고 있습니까? – srikanta

+1

당신이 원하는대로 행동하는 것과 같은 소리가납니다. 최종 문자열의 2와 3 위치에 널 문자로 끝납니다. Null 문자는 Java에서 문자열을 종료하지 않습니다. 배열의 첫 번째 -1에서 문자열을 잘라내시겠습니까? –

답변

6

난 당신이, 그러나 C.에 일어날 자바 문자열 내부에 널 문자를 수있는 첫 번째 널 (null) 문자의 문자열을 종료한다고 가정거야, 그래서 그들은 원 문자열을 종료하지 마라. 다음 코드를 사용하면 수행 한 동작이 생성됩니다.

StringBuilder sb = new StringBuilder(); 
for (int i=0; i < mTypeSelection.length; i++){ 
    if(mTypeSelection[i] > -1) { 
     sb.append(Character.forDigit(mTypeSelection[i], 10)); 
    } else { 
     break; 
    } 
} 
String result = sb.toString(); 
+0

감사합니다. – mAndroid

+0

당신은 환영합니다 :) –