2012-05-28 11 views
23

Próbuję podać przykład podany pod numerem Oracle's documentations. Plik java to here, jak pokazano na tej stronie. Teraz z tym plikiem java przechowuję plik LabelsBundle.properties w tym samym katalogu.Wiodące spacje Java ResourceBundle w wartościach

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

wydaje się, że końcowe białe spacje nie są ignorowane podczas odczytu wartości, a początkowe spacje są ignorowane.

Więc jeśli chcę, aby miejsca wiodące były tam, co mam zrobić?

Innymi słowy, co muszę zrobić, aby odczytać wartość s1 jako

computer 

zamiast

computer 

?

Odpowiedz

31

Należy wykonać sekwencję unikodową Unicode \u0020, ponieważ parser właściwości powinien rozpoznać ją jako wartość rzeczywistą, a ciąg Java powinien interpretować \u0020 jako punkt kodowy Unicode dla spacji.

Alternatywnie, IIRC, możesz uciec z przestrzeni z odwrotnym ukośnikiem, takim jak ten \ my value. Działa również dla kluczy.

+0

\ u0020 będzie działać bez zmiany kodowania? i @Zaki: Próbowałem i bez zmiany żadnego kodowania, '\' działało!? – prongs

+0

Tak, ponieważ '\ u0020' jest kodem. W rzeczywistości jest to narzędzie native2ascii: konwertuj wszystkie znaki spoza zakresu ASCII na takie sekwencje unikowe Unicode, aby zapewnić prawidłowe ładowanie pliku właściwości bez zrywania znaków, gdy sam kod właściwości jest traktowany jako ASCII. – user268396

+0

również, czy mogę to zrobić bez zmiany pliku właściwości? W kodzie java mam na myśli? – prongs

15

Można uciec z miejsca luzu:

s1 =\ computer 
+0

również, czy mogę to zrobić bez zmiany pliku właściwości? W kodzie java mam na myśli? – prongs