二重解析でカンマを小数点区切り文字として処理する方法
小数点区切り文字としてカンマを使用すると、標準の Double.valueOf() メソッド。次のコードを考えてみましょう:
String p = "1,234"; Double d = Double.valueOf(p); System.out.println(d);
このコードは、カンマが存在するため NumberFormatException をスローします。この問題に対処するには、p = p.replaceAll(",", ".") 置換手法の使用を検討できます。ただし、java.text.NumberFormat クラスを使用した、より効率的でローカライズされたアプローチがあります。
NumberFormat を使用した解決策
NumberFormat クラスを使用すると、以下に従って数値を解析できます。さまざまな小数点区切り文字の処理を含む、特定のロケール設定に対応します。これを使用してカンマ区切りで double を解析する方法は次のとおりです。
NumberFormat format = NumberFormat.getInstance(Locale.FRANCE); Number number = format.parse("1,234"); double d = number.doubleValue();
このコードでは、NumberFormat.getInstance(Locale.FRANCE) はフランス語ロケールで NumberFormat クラスのインスタンスを作成します。ここで、カンマは小数点の区切り文字としてよく使用されます。次に、format.parse() メソッドは文字列を Number オブジェクトに解析します。このオブジェクトは、doubleValue() メソッドを使用して double に変換できます。
多言語サポート
多言語アプリケーションの場合、Locale.getDefault() メソッドを使用してユーザーのデフォルトのロケールを取得できます。 system:
NumberFormat format = NumberFormat.getInstance(Locale.getDefault());
このアプローチにより、コードがユーザーの優先ロケールに適応し、それに応じて小数点区切り文字を処理できるようになります。
以上がJava で小数点としてカンマを使用して double を正しく解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。