に似たJava解析ライブラリはありDecimalFormat
ますか?DecimalFormat
正規表現ではやりたいことができません。
私はできる必要があります:
- 整数のみを解析します(DecimalFormatには、単なるパターンよりも多くの設定が必要です)
- 小数を解析します(丸めなしで正確に)
- 123,456.789のような数値を解析します。(###、###。###のDecimalFormatは、「123456789」も受け入れます)
に似たJava解析ライブラリはありDecimalFormat
ますか?DecimalFormat
正規表現ではやりたいことができません。
私はできる必要があります:
それを文字列のように扱い、トークン化してみることができます。
str.split("\\.") は小数側を分割し、それを精度に合わせてサブストリング化し、数値側で split(",") できます
ただし、これはかなりの手動解析作業です...
私は正規表現を使用しますNumberFormat
:
Map<Pattern,NumberFormat> POSSIBLE_FORMATS = ...;
String input = ...;
Number value = null;
for (Map.Entry<Pattern,NumberFormat> possible : POSSIBLE_FORMATS.entrySet()) {
if (possible.getKey().matcher(input).matches()) {
value = possible.getKeValue().parse(input);
break;
}
}
if (value == null) {
throw new IllegalArgumentExcption("no valid input format: " + input);
}