Konwersja Java String do ascii
Muszę przekonwertować String
S, który składa się z niektórych liter specyficznych dla niektórych języków (jak HÄSTDJUR - note Ä) na String
bez tych specjalnych liter (w tym przypadku HASTDJUR). Jak mogę to zrobić w Javie? Dzięki za pomoc!
Nie chodzi o to, jak to brzmi. Scenariusz jest następujący - chcesz korzystać z aplikacji, ale nie masz szwedzkiej klawiatury. Więc zamiast patrzeć na mapę postaci, wpisujesz ją, zastępując specjalne litery typowymi literami z alfabet łaciński.
19
Author: Sean Patrick Floyd, 2010-09-14
2 answers
Myślę, że twoje pytanie jest takie samo jak to:
Java-pozbycie się akcentów i konwersja ich na zwykłe litery
I stąd też odpowiedź jest taka sama:
Rozwiązanie
String convertedString =
Normalizer
.normalize(input, Normalizer.Form.NFD)
.replaceAll("[^\\p{ASCII}]", "");
Referencje
Zobacz
- JavaDoc: Normalizer.normalize( String, Normalizer.Formularz)
- JavaDoc: Normalizer.Forma.NFD
- Sun Java Tutorial: Normalizer ' s API
Przykład Kod:
final String input = "Tĥïŝ ĩš â fůňķŷ Šťŕĭńġ";
System.out.println(
Normalizer
.normalize(input, Normalizer.Form.NFD)
.replaceAll("[^\\p{ASCII}]", "")
);
Wyjście:
This is a funky String
46
Author: Sean Patrick Floyd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-22 20:49:07
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-22 20:49:07
Sugerowałbym odwzorowanie znaków specjalnych na te, które chcesz.
Ä --> A
é --> e
A --> A (exactly the same)
etc...
I wtedy możesz po prostu wywołać mapowanie nad tekstem (w pseudokodzie):
for letter in string:
newString += map(letter)
Efektywnie, musisz stworzyć zestaw reguł dla tego, jakie znaki mapują do odpowiednika ASCII.
2
Author: Noel M,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-14 10:26:49
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-14 10:26:49