Originariamente inviato da andbin
Ho detto 0 (ma dovevo essere più preciso ... 0 costante numerica!!!) non '0' (digit 0).
codice:
char a = 0; // valore numerico
char a = '\u0000'; // escape "unicode"
char a = '\0'; // escape ottale
Sono tutti uguali!
Ma questi caratteri nulli chi li mette nella stringa?? Ripeto: è di una rarità pazzesca dover mettere caratteri "nulli" (\u0000 per essere chiari) in una stringa. Cioè ci deve essere un motivo (?) ben valido per avere caratteri nulli in una stringa. E a me non pare il tuo caso ..... (ma dovresti precisare).
Ok, allora facciamo un passo indietro e dimentichiamo cosa hai fatto finora.
Hai una stringa che contiene un codice "morse" e vuoi ottenere i caratteri ascii per renderla "leggibile"??
Cioè hai es.
"... --- ..." e vuoi ottenere "SOS"??? E i codici morse sono appunto, come nell'esempio, separati da uno (o eventualmente più di uno) spazio??
Non vedo a cosa ti servono i caratteri nulli. Usa anche solo un semplice StringTokenizer, spezza quindi in "token" la stringa e avrai i singoli codici morse "..." poi "---" poi "...".
A questo punto o fai una classica catena di test usando equals() oppure, in modo molto più furbo, prima crei una "mappa" (HashMap) riempita con associazioni "..." ---> "S" ecc...
E diventa tutto semplice, pulito e lineare.