假设我提供的字符串类似于"$123,456,56.25"
或"123'456.67"
或与此类似的字符串(带有数字和小数点以及某些分隔符,如,
或{{1或其他不可预测的东西)。我需要编写一个方法,该方法接受类似上面的参数,并分别返回类似'
或"12345656.25"
的字符串。
请您建议最有效和最易读的代码来实现这一目标吗?
注意:我知道浏览每个索引并检查其"123456.67"
或true
的重定序器Character.isDigit(charAtInedx)
我正在寻找一个在效率和可读性方面更优化的解决方案
感谢。
答案 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。