2011-09-29 21 views
5

Sto provando a creare una stringa in Java che sarà al massimo 3 lunghi e almeno 1 lungo.Java null char nella stringa

Sto costruendo la stringa in base al contenuto di un array intero e desidero generare un carattere null nella stringa se il contenuto dell'array è -1. Altrimenti la stringa conterrà una versione del carattere dell'intero.

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

    } 

Questo quello che ho finora, ma quando l'uscita ho la stringa per il campo {0, -1, -1} piuttosto che ottenere la stringa "0" Sto diventando stringa "0".

qualcuno sa come posso ottenere il risultato che voglio.

Grazie, m

+0

Puoi fornire il codice completo? Come stai stampando il risultato? – srikanta

+1

Sembra che il comportamento che dici sia quello che sta succedendo: sei finito con caratteri nulli nelle posizioni 2 e 3 nella stringa finale. I caratteri null non terminano la stringa in Java. Volete troncare la stringa al primo -1 nell'array? –

risposta

6

ho intenzione di assumere che si desidera terminare la stringa al primo carattere nullo, come accadrebbe in C. Tuttavia, è possibile avere caratteri nulli all'interno stringhe in Java, in modo che ha vinto 't terminare la stringa. Penso che il seguente codice produrrà il comportamento che stai cercando:

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

Grazie è geniale. – mAndroid

+0

Prego :) –