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