在java中解析货币字符串

问题描述 投票:0回答:3

假设我提供了一个类似于

"$123,456,56.25"
"123'456.67"
或类似的字符串(带有数字和小数点以及一些分隔符,例如
,
'
或其他不可预测的内容) 。我需要编写一个方法,它接受一个像上面那样的参数,并分别返回一个像
"12345656.25"
"123456.67"
这样的字符串。

您能否建议最有效且可读的代码来实现此目的?

注意:我知道要检查每个索引并检查其返回值是否为

true
Character.isDigit(charAtInedx)
我正在寻找一种在效率和可读性方面都更加优化的解决方案

谢谢。

java string internationalization
3个回答
19
投票
这将删除任何不是数字或句点的字符


7
投票
NumberFormat

类,专门针对您的情况 NumberFormat.parse(String)。下面的文章还讨论了在 Java 中处理金钱的问题(和解决方案):

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

其他相关类包括:

Currency

,当然还有BigDecimal


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

对象。例如:

NumberFormat.getCurrencyInstance

请记住,这只是一个简单的示例,您还需要考虑异常情况。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.