Meine App erhält String aus einem externen Prozess, wobei jede Zeichenfolge entweder 2 oder 5 Zeichen lang ist und eine java.util.Locale
s darstellt. Zum Beispiel:Wie validiere und instanziiere Java Locale aus Strings?
en-us
ko
Das erste Beispiel eines 5-char-String ist, wo "en" der Sprachcode ISO ist, und "wir" sind die ISO-Länder Code. Dies sollte dem Gebietsschema "en_US" entsprechen. Das zweite Beispiel ist nur eine 2-Zeichenkette, wobei "ko" der ISO-Sprachcode ist und dem koreanischen Gebietsschema "ko_KR" entsprechen sollte.
Ich brauche einen Weg, um diese Zeichenfolgen (entweder die 2- oder 5-Char-Variante) zu nehmen, validiere sie (als unterstützte Java Locale) und dann eine Locale-Instanz damit.
Ich hätte gehofft, dass Locale mit einer solchen Validierung kam aus der Box, aber leider läuft dieser Code ohne Ausnahmen geworfen werden:
Locale loc = new Locale("waawaaweewah", "greatsuccess");
// Prints: "waawaaweewah"
System.out.println(loc.getDisplayLanguage());
Also frage ich, da mir die zwei Formen, die diese Zeichenfolge sein Wie kann ich:
Vielen Dank im Voraus!
Wie wäre es mit einem 'neuen Gebietsschema (Sprache)' für den zweiten Fall und 'neuem Gebietsschema (Sprache, Land)' für den ersten Fall vorausgesetzt, Sie teilen die Eingabe mit einem Bindestrich und behandeln die 2-Zeichen-Token als Sprache und Land? – asgs