在 Java 中用货币符号解析价格

2024-04-05

我想将我拥有的字符串解析为数字。这是我正在使用但不起作用的代码:

NumberFormat.getCurrencyInstance(Locale.GERMAN).parse("EUR 0,00");

这会导致 java.text.ParseException

所以我想将字符串与数字相匹配,我并不真正关心货币,但如果有的话那就太好了。

我想要匹配以下类型的字符串:

EUR 0,00 
EUR 1.432,89
$0.00 
$1,123.42 
1,123.42$ 
1,123.42 USD

当然,正则表达式有很多方法,但我认为这有点矫枉过正。


Locale.GERMAN 似乎没有货币符号。 Locale.GERMANY 将欧元符号作为其货币(而不是字符串“EUR”)。请注意,下面的 blam1 和 blam3 会导致解析异常,CurrencyFormat 对象只喜欢 blam2。

NumberFormat numberFormat = NumberFormat.getCurrencyInstance(Locale.GERMANY);

System.out.println("75.13 euro: " + numberFormat.format(75.13));

try {
  System.out.println("Parsed blam1: " + numberFormat.parse("EUR 75,11"));
} catch (ParseException exception) {
  System.out.println("Parse Exception1: " + exception);
}

try {
  System.out.println("Parsed blam2: " + numberFormat.parse("75,12 €"));
} catch (ParseException exception) {
  System.out.println("Parse Exception2: " + exception);
}

try {
  System.out.println("Parsed blam3: " + numberFormat.parse("€ 75,13"));
} catch (ParseException exception) {
  System.out.println("Parse Exception3: " + exception);
}

我怀疑您需要找到一个适合您需要的开源货币解析器,或者自己编写一个。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Java 中用货币符号解析价格 的相关文章

随机推荐

  • 如何配置 Hibernate 以立即应用所有保存、更新和删除?

    我该如何配置休眠 http www hibernate org 在会话执行每个操作后立即将所有保存 更新和删除应用到数据库服务器 默认情况下 Hibernate 将所有保存 更新和删除操作排入队列 并仅在经过一段时间后才将它们提交到数据库服
  • Scala:列表 [Tuple3] 到映射 [字符串,字符串]

    我得到的查询结果为List Int String Double 我需要将其转换为Map String String 用于在 html 选择列表中显示 我的破解方案是 val prices dao getPricing flatMap cas
  • 使用 Redux Observable 等待操作序列

    我有一个用例 在使用 Redux Observables 调度另一个操作之前 我需要等待一系列操作 我见过一些类似的问题 但我无法理解如何在给定的用例中使用这些方法 本质上我想做这样的事情 action ofType PAGINATION
  • 自定义内存管理器

    我正在尝试实现一个自定义内存管理器 我想知道是否有更好的方法来实现这个函数 因为当我被问及 void 指针算术时 有几个人认为如果我在 C 中有一个 void 那就太糟糕了错误的 allocates a page of memory voi
  • 为什么我的调试数据未格式化?

    var dump and print r使用 Laravel 4 时显示的数据未格式化 如何格式化数据以使其更具可读性 通过在命令行上运行以下命令将 Kint 添加到您的composer json composer require rave
  • Metamask 停止注入 web3.js

    据我们所知 从2020年1月13日开始 metamask将不再注入web3 js 我们应该采取哪些方法来停止对web3的依赖 另外 我们如何使用目前正在注入 web3 js 的现有 Metamask 来测试它 window ethereum
  • 为什么使用类方法而不是静态方法? [复制]

    这个问题在这里已经有答案了 我知道他们是做什么的 并且我见过很多这两个例子 但我还没有找到一个我必须使用的例子classmethod而不是用staticmethod 最常见的例子是classmethod我见过的是用于创建新实例类本身 就像这
  • 积分运算符 quot 与 div

    类型类 Integral 有两个操作quot and div 但在 Haskell 2010 语言报告中并没有具体说明它们应该做什么 假如说div是积分除法 什么quot不同 或者目的是什么quot 什么时候使用其中一个 什么时候使用另一个
  • 生成生成集的算法

    给定此输入 1 2 3 4 我想生成一组跨越集 1 2 3 4 1 2 3 4 1 2 3 4 1 3 2 4 1 2 3 4 1 3 2 4 1 4 2 3 1 2 3 4 1 3 2 4 1 4 2 3 1 2 3 4 1 2 4 3
  • 如何在 django 2.0 管理中使用allow_tags?

    Support for the allow tags attribute on ModelAdmin methods is removed 刚刚找到答案 使用mark safe https docs djangoproject com en
  • 非连续元素的最大和

    给定一个正整数数组 从该数组中查找非连续元素的最有效算法是什么 这些元素加在一起时会产生最大总和 动态规划 给定一个数组A 0 n let M i 是使用带有索引的元素的最佳解决方案0 i Then M 1 0 用于递归 M 0 A 0 a
  • 更改使用模式匹配的 do 表达式来应用绑定运算符

    原问题 利亚 在对于更多的 Monad http learnyouahaskell com for a few monads more显示此功能 solveRPN String gt Maybe Double solveRPN st do
  • Sequelize.js 删除查询?

    有没有办法像findAll一样编写delete deleteAll查询 例如 我想做这样的事情 假设 MyModel 是 Sequelize 模型 MyModel deleteAll where some field something o
  • 无法再卸载 Visual Studio 2017

    我在运行最新的 VS2017 时遇到了严重的问题 因为在我升级它时它进入了不一致的状态 有一些残留的软件包拒绝卸载 因为它们显然缺少来自的缓存文件C Windows Installer文件夹 我从来没有碰过那个文件夹 然而 我确实移动了C
  • 使用 InputMismatchException 进行尝试/捕获会创建无限循环[重复]

    这个问题在这里已经有答案了 所以我正在构建一个从用户输入中获取整数的程序 我有一个看起来非常简单的 try catch 块 如果用户没有输入 int 则应该重复该块直到他们输入 这是代码的相关部分 import java util Inpu
  • GWT 同步调用

    我在 GWT 中有一个方法 它使用请求的 fire 方法从数据库检索数据 因为你们都知道它是异步的 我从 JS 调用这个方法 所以我需要同步是否可能 private static String retriveLocation String
  • docker 镜像与 docker-desktop for windows 一起存储在哪里?

    I installed docker desktop for windows 10 from https www docker com products docker desktop https www docker com product
  • 备份远程SQL Server数据库到本地

    我正在尝试将实时数据库备份到我的计算机上 但找不到执行此操作的选项 我使用 Microsoft SQL Server Management Studio 2008 R2 连接到它 我是 MySQL 猴子 所以我习惯了能够备份到 sql文件并
  • 对象 TextField 内的模板标签

    我需要里面的自定义模板标签model TextField价值 对象文本字段中的值类似于 lorem ipsum dolor mytag 但 mytag 不会呈现为模板标签 它在库中注册为标签并加载到页面上 我有 object textfie
  • 在 Java 中用货币符号解析价格

    我想将我拥有的字符串解析为数字 这是我正在使用但不起作用的代码 NumberFormat getCurrencyInstance Locale GERMAN parse EUR 0 00 这会导致 java text ParseExcept