假设我提供了一个类似于
"$123,456,56.25"
或 "123'456.67"
或类似的字符串(带有数字和小数点以及一些分隔符,例如 ,
或 '
或其他不可预测的内容) 。我需要编写一个方法,它接受一个像上面那样的参数,并分别返回一个像 "12345656.25"
或 "123456.67"
这样的字符串。
您能否建议最有效且可读的代码来实现此目的?
注意:我知道要检查每个索引并检查其返回值是否为
true
或 Character.isDigit(charAtInedx)
我正在寻找一种在效率和可读性方面都更加优化的解决方案谢谢。
这将删除任何不是数字或句点的字符
类,专门针对您的情况 NumberFormat.parse(String)。下面的文章还讨论了在 Java 中处理金钱的问题(和解决方案):
http://www.javapractices.com/topic/TopicAction.do?Id=13Currency,当然还有BigDecimal。
String newStr = oldStr.replaceAll("[^\\d.]+", "")
对象。例如:
NumberFormat.getCurrencyInstance
请记住,这只是一个简单的示例,您还需要考虑异常情况。