亲爱的朋友们我正在阅读包含某些文件的csv文件,例如 1.086,12 。现在我的问题是我必须格式化它允许我创建一个BigDecimal,他们我的正确值应该是1086.12。但我也可能有另一个值99,11,在这种情况下我必须得到99.11。
我写了这段代码:
BigDecimal bigDecimal = null;
String str = value.replace(',','.');
bigDecimal = new BigDecimal(str);
我的代码只适用于后者,是否有一些正则表达式允许这个?
答案 0 :(得分:1)
您不需要正则表达式。您可以/应该使用DecimalFormat:
DecimalFormatSymbols dfs = new DecimalFormatSymbols(Locale.GERMAN);
DecimalFormat df= new DecimalFormat();
df.setDecimalFormatSymbols(dfs);
Double valCEWithUKFormat = df.parse(str).doubleValue();
答案 1 :(得分:0)
您可以使用此Java代码:
String[] arr = {"1.086,12", "99.11"};
for (String tok: arr) {
if (tok.matches("[^.]*\\.[^,]+,.*"))
tok= tok.replace(".", "").replace(",", ".");
System.out.println( tok );
}
<强>输出:强>
1086.12
99.11