在java中解析货币字符串
假设我提供的字符串类似于"$123,456,56.25"
"123'456.67"
"$123,456,56.25"
或"123'456.67"
或类似的东西(带有数字和小数点以及某些分隔符,
或'
或其他不可预测的东西)。 我需要编写一个方法,它接受类似上面的参数并分别返回一个字符串,如"12345656.25"
或"123456.67"
。
能否请您建议最有效和最易读的代码来实现这一目标?
注意:我知道通过每个索引并检查它的Character.isDigit(charAtInedx)
是否为Character.isDigit(charAtInedx)
或if(charAtInedx == '.')
是真的我在寻找效率和效率方面的更优化的解决方案可读性
谢谢。
String newStr = oldStr.replaceAll("[^\\d.]+", "")
这将删除任何不是数字或句点的字符
如果要正确处理货币值,您需要查看NumberFormat类,特别是您的CaseFormat.parse(String) 。 以下文章还讨论了在Java中处理资金的问题(和解决方案):
http://www.javapractices.com/topic/TopicAction.do?Id=13
其他相关的类包括: 货币 ,当然还有BigDecimal 。