2012-05-28 16 views
23

Sto provando l'esempio dato a Oracle's documentations. Il file java è here come mostrato in quella pagina. Ora con questo file java, tengo un file LabelsBundle.properties nella stessa directory.Java ResourceBundle che porta lo spazio bianco nei valori

# This is the default LabelsBundle.properties file 
s1 = computer 
s2 = disk 
s3 = monitor 
s4 = keyboard 

sembra che lo spazio vuoto finale non venga ignorato durante la lettura dei valori e gli spazi bianchi iniziali vengono ignorati.

Quindi, se voglio che spazi iniziali siano lì, cosa devo fare?

In altre parole, quello che devo fare per leggere il valore di s1 come

computer 

invece di

computer 

?

risposta

31

Una sequenza di escape Unicode \u0020 deve essere eseguita poiché il parser delle proprietà deve riconoscerlo come valore effettivo e la stringa Java deve interpretare \u0020 come punto di codice Unicode per lo spazio.

In alternativa, IIRC, è possibile uscire dallo spazio con un backslash come questo \ my value. Funziona anche per le chiavi.

+0

\ u0020 potrebbe funzionare senza alcuna modifica la codifica? e @Zaki: ho provato e senza modificare alcuna codifica, '' funzionava!? – prongs

+0

Sì, perché '\ u0020' è il codice. In effetti, questo è ciò che fa lo strumento native2ascii: converte tutti i caratteri al di fuori dell'intervallo ASCII in sequenze di escape Unicode per garantire il corretto caricamento dei file delle proprietà senza rompere i caratteri quando il codice delle proprietà viene trattato come ASCII. – user268396

+0

inoltre, posso farlo senza modificare il file delle proprietà? Nel codice java intendo? – prongs

15

Si può sfuggire lo spazio con gioco:

s1 =\ computer 
+0

inoltre, posso farlo senza modificare il file delle proprietà? Nel codice java intendo? – prongs

Problemi correlati