我知道标题很模糊,但我会解释我在寻找什么 我必须分析来自各种来源的大量数据,并且我想检查一个值是否可以被解释为数值。我知道有正则表达式,但事实是,我有很多格式以各种方式格式化,具体取决于它们来自何处:
我正在寻找能够分析这些String并返回数值或相应模式的库。这会节省我很多时间!
感谢的
答案 0 :(得分:4)
由于无法判断字符串"123,456"
是123.456
的法语符号(一百二十三点四,五,六)还是{{1}的英语符号1}}(十二万三千四百五十六),没有可靠的方法来做你所要求的。
答案 1 :(得分:1)
使用一组正则表达式来执行此操作。例如,对于英文数字,您可以使用以下内容:
(([0-9]+),[0-9]+){1,}((\.)[0-9]+)?
这会找到像
这样的数字但不是:
我希望这有帮助。
答案 2 :(得分:1)
我认为以下方法将满足您的需求:
public Double getNumber( String str ) {
str = str.replace("'", "").replace(",","").replace(" ","").trim();
try {
Double num = Double.parseDouble(str);
return num;
} catch( NumberFormatException nfe ) {
nfe.printStackTrace();
return 0.0;
}
}