'en_US'以外のロケールでは、文字列形式の小数点があります。私は 'en_US'ロケールの10進数に変換したいと思います。Javaのあるロケールから別のロケール(en_US)への10進形式の変換
例: "123.345.123,45" - > "123345123.45" または "123,345,123.45"
"123 345,45" - > "123345.45" または "123,345.45"
"123.345" - > "123345"または "123,345"
'en_US'以外のロケールでは、文字列形式の小数点があります。私は 'en_US'ロケールの10進数に変換したいと思います。Javaのあるロケールから別のロケール(en_US)への10進形式の変換
例: "123.345.123,45" - > "123345123.45" または "123,345,123.45"
"123 345,45" - > "123345.45" または "123,345.45"
"123.345" - > "123345"または "123,345"
あなたが探しているのはNumberFormatのようです。このスニペットは、Oracleのマニュアルを参照し
:
static public void displayNumber(Locale currentLocale) {
Integer quantity = new Integer(123456);
Double amount = new Double(345987.246);
NumberFormat numberFormatter;
String quantityOut;
String amountOut;
numberFormatter = NumberFormat.getNumberInstance(currentLocale);
quantityOut = numberFormatter.format(quantity);
amountOut = numberFormatter.format(amount);
System.out.println(quantityOut + " " + currentLocale.toString());
System.out.println(amountOut + " " + currentLocale.toString());
}
この例では、次のように出力します。
123 456 fr_FRの
345 987246 fr_FRの
123.456 de_DEの
345.987,246 de_DEの
123,456はen_US 3:同じ番号のフォーマットは、ロケールにどのように変化するかは示してい
45,987.246en_US
ここコンテンツから提示されたことをリンクです:1つのロケールから別のフォーマットされた数値文字列を変換するために
https://docs.oracle.com/javase/tutorial/i18n/format/numberFormat.html
、あなたは文字列が生成されたロケールを知っている必要がありますが、 。そこからNumberFormat.parseを使用して、文字列をNumberに変換することができます。次に、ターゲットロケールを使用して別のNumberFormatを作成し、.formatメソッドを使用して文字列表現を変更します。
static public String displayNumber(String startValue, Locale startLocale, Locale endLocale) throws ParseException {
NumberFormat parser = NumberFormat.getNumberInstance(startLocale);
NumberFormat formatter = NumberFormat.getNumberInstance(endLocale);
Number rawNumber = parser.parse(startValue);
return formatter.format(rawNumber);
}
私はこの以前に見ていたが、私はに走った問題は、私の入力はen_USロケールとそうでない文字列「123.345,67」していたということです私は最初にその特定のロケールで有効なdoubleに文字列を変換する方法が必要でした。それは私が立ち往生したところです。 –
NumberFormatがこの目的にどのように役立つかを示す応答が更新されました。文字列の元のロケールがわからない場合、これは機能しません。 – Jeremiah
ありがとうございました@Jeremiah、それは私が探していたものでしたが、今私はそれを使用することができます...ありがとうございました –
http://idownvotedbecau.se/noattempt/ – Robert