Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用多个点编组分隔符格式化数字_Java_Format_Decimalformat - Fatal编程技术网

Java 使用多个点编组分隔符格式化数字

Java 使用多个点编组分隔符格式化数字,java,format,decimalformat,Java,Format,Decimalformat,我需要验证显示的字符串是否为数字。该值的格式为123.345.678,99。 也就是说,分组分隔符是点,小数分隔符是逗号 我在设置分隔符的地方尝试了DecimalFormatter: DecimalFormat formatter = (DecimalFormat) NumberFormat.getCurrencyInstance(); DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols(); sym

我需要验证显示的字符串是否为数字。该值的格式为123.345.678,99。 也就是说,分组分隔符是点,小数分隔符是逗号

我在设置分隔符的地方尝试了DecimalFormatter:

 DecimalFormat formatter = (DecimalFormat) NumberFormat.getCurrencyInstance();
    DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols();
    symbols.setGroupingSeparator('.');
    symbols.setDecimalSeparator(',');
    formatter.setDecimalFormatSymbols(symbols);
    formatter.setGroupingUsed(true);

    System.out.println(formatter.format(incoming));
然而,在这种情况下,我得到了

java.lang.IllegalArgumentException:无法将给定对象格式化为数字

我也试着补充一下

formatter.applyPattern("###,###,###.##");
但这没用

有什么想法吗


我想我也可以使用regexp,但如果可能的话,我想首先使用这个
分码格式。

我会失去货币,然后直接用相关符号创建一个新的
分码格式。一旦你有了它,你应该用它来解析传入的字符串,而不是格式化它:

DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setDecimalSeparator(',');
dfs.setGroupingSeparator('.');
DecimalFormat df = new DecimalFormat();
df.setDecimalFormatSymbols(dfs);

System.out.println(df.parse(stringToTest));

我认为您需要的方法是
parse
,而不是
format
。它们是对立的。这个问题和硒有什么关系?我错过什么了吗?谢谢!这起作用了:)对不起,我要去掉“Selenium”标签。