从String中解析BigDecimal,其中包含任意格式的数字

时间:2011-02-24 14:28:58

标签: java bigdecimal number-formatting

我们从格式化为文本的XLS单元格中读取数据。

该单元格希望包含一个数字,输出将是一个BigDecimal(因为任意精度)。

问题是,单元格格式也是任意的,这意味着它可能包含如下数字:

  • 带货币符号($ 1000)
  • 前导和尾随空格,或数字之间的空格(例如,1 000)
  • 数字分组符号(例如1,000.0)
  • 当然是负数
  • 'o'和'O'为零(例如1,ooo.oo)
  • 其他我想不到的

这主要是因为最后一点我正在寻找能够做到这一切的标准库,并且可以配置,经过充分测试等。

我先看了一眼Apache,发现什么都没有,但我可能会失明......也许对别人来说这是一个微不足道的答案......

更新:问题的范围是财务应用程序。实际上我期待一个域可以作为输入参数的库 - 金融,科学等等。可能更具体:带货币符号的财务?有股票符号?距离和其他测量单位?我不敢相信我是第一个想到这样的人......

3 个答案:

答案 0 :(得分:2)

我不知道任何图书馆,但您可以尝试:

  • 将您的号码放在字符串上。 (例如:$ 1,00o,oOO.00)
  • 删除所有出现的$,空格或任何其他你能想到的strang符号......
  • 替换o和O的出现次数。
  • 尝试解析数字=]

这应解决99%的问题......

答案 1 :(得分:2)

使用 legal 成人内容购买一堆照片甚至更好的视频。使用这些资源创建一个网站,但使用验证码限制访问,这将显示未解决的数字格式。使用已知数字格式创建一组数字解码器,并创建一个算法,根据用户解决的验证码添加新算法。

答案 2 :(得分:0)

我认为这就是我一直在寻找的:

http://site.icu-project.org/

非常强大的库,虽然目前还不清楚它是否只能格式化,或者所有格式化的东西都可以被解析回来。