2011-09-29 11 views
5

Próbuję zbudować ciąg znaków w Javie, który będzie miał maksymalnie 3 długie i co najmniej 1 długie.Java null char w łańcuchu

Buduję ciąg znaków w zależności od zawartości tablicy liczb całkowitych i chcę wypisać w łańcuchu znak null, jeśli zawartość tablicy wynosi -1. W przeciwnym razie ciąg będzie zawierał wersję znaku liczby całkowitej.

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

    } 

To, co mam tak daleko, ale gdy wyjście I napis na tablicy {0, -1, -1} zamiast po prostu coraz ciąg „0” Dostaję ciąg „0”.

czy ktoś wie, jak mogę uzyskać wynik, który chcę.

Dzięki, m

+0

Czy możesz podać pełny kod? Jak drukujesz rezultat? – srikanta

+1

Wygląda na to, że zachowanie, o którym mówisz, że chcesz, jest tym, co się dzieje - kończysz z pustymi znakami na pozycjach 2 i 3 w ostatnim ciągu. Znaki zerowe nie kończą ciągu znaków w Javie. Czy chcesz skasować ciąg na pierwszym -1 w tablicy? –

Odpowiedz

6

zamierzam zakładać, że chcesz zakończyć łańcuch na pierwszy znak null, co by się stało w C. Można jednak mieć pustych wewnątrz ciągów znaków w Javie, tak wygrali "t zakończyć ciąg. Myślę, że poniższy kod spowoduje zachowanie, którego szukasz:

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

Dzięki, że jest genialny. – mAndroid

+0

Nie ma za co :) –