Wie in this post zu sehen, müssen Sie Whitespace manuell als Trennzeichen festlegen.
try {
String longString = "14 123";
DecimalFormat decimalFormat = new DecimalFormat(); // instead of NumberFormat, use DecimalFormat
DecimalFormatSymbols symbols = new DecimalFormatSymbols(new Locale("sv", "SE"));
symbols.setGroupingSeparator(' '); // set the whitespace manually as grouping seperator
decimalFormat.setDecimalFormatSymbols(symbols);
System.out.println(svSE.parse(longString));
} catch (ParseException ex) {
Logger.getLogger(Playground.class.getName()).log(Level.SEVERE, null, ex);
}
//> output is 14123
um ehrlich zu sein ich bin ein wenig verwirrt, aber ich denke, die Ausgabe ist, dass Sie formated Strings benötigen (anscheinend nicht jeder Leerzeichen hier das gleiche ist)
try {
long testNumber = 123987l;
NumberFormat swedishNumberFormat = NumberFormat.getInstance(new Locale("sv"));
//here I format the number into a String
String formatedString = swedishNumberFormat.format(testNumber);
System.out.println(formatedString); // result: "123 987"
// when parsing the formated String back into a number
System.out.println(swedishNumberFormat.parse(formatedString)); // result: "123987"
// but when parsing a non formated string like this one
System.out.println(swedishNumberFormat.parse("123 987")); // result "123"
} catch (ParseException ex) {
Logger.getLogger(Playground.class.getName()).log(Level.SEVERE, null, ex);
}
Bitte korrigiere mich, wenn ich hier falsch liege oder mein Beispiel nicht funktioniert hat. Ich habe keine Idee, warum es die Dinge so macht, aber um Situationen wie die oben genannten zu verwirren, möchten Sie vielleicht das Trennzeichen manuell einstellen.
EDIT
als Joop Eggen in seinem answer erklärten der String einen harten, nicht-breaking Speicherplatz verwenden muss ('\u00a0'
) anstelle einem einfachen Leerzeichen. Das ist der Grund, warum mein Beispiel in der letzten Zeile "123" zurückgibt (ich habe nur den normalen Leerraum benutzt).
Also ein Fehler in der schwedischen Gebietsschema in Java? –
Für mich ist diese Frage und Antwort besser als eine, die als verwandt gekennzeichnet ist. Ich denke nicht, dass diese Frage geschlossen werden sollte. – Jayan