在java中解析货币字符串

时间:2011-05-16 11:10:20

标签: java string internationalization

假设我提供的字符串类似于"$123,456,56.25""123'456.67"或与此类似的字符串(带有数字和小数点以及某些分隔符,如,或{{1或其他不可预测的东西)。我需要编写一个方法,该方法接受类似上面的参数,并分别返回类似'"12345656.25"的字符串。

请您建议最有效和最易读的代码来实现这一目标吗?

注意:我知道浏览每个索引并检查其"123456.67"true的重定序器Character.isDigit(charAtInedx) 我正在寻找一个在效率和可读性方面更优化的解决方案

感谢。

2 个答案:

答案 0 :(得分:12)

String newStr = oldStr.replaceAll("[^\\d.]+", "")

这将删除任何不是数字或句号的字符

答案 1 :(得分:6)

如果您想正确处理货币价值,您需要查看NumberFormat类,特别是您的案例NumberFormat.parse(String)。以下文章还讨论了在Java中处理资金的问题(和解决方案):

http://www.javapractices.com/topic/TopicAction.do?Id=13

其他相关课程包括:Currency,当然还有BigDecimal