猿问

java中如何计算'1,000,000*2'等格式化字符串

我正在制作一个程序,该程序从包含有关价格详细信息的单元格中提取文本,并从包含有关价格信息的单元格中提取文本 excel 文件,然后比较它们。

我成功地用 apache poi 提取了它们,但我不知道如何从包含有关价格详细信息的单元格中计算文本。

这些文本有一些模式如下。

  • \3,000*641

  • 存款(\10,000*105)

  • 牛肉(\20,900*3) + 可乐1.25L(\3,000*2)

  • 鸡肉(\22,900*3) - 折扣(\39,400)

我认为有人会推荐在 apache poi 中使用公式评估。不幸的是,包含有关价格详细信息的单元格类型不是FORMULA 而是 STRING。

我希望你能给我一些计算那些格式化文本的代码!


子衿沉夜
浏览 121回答 1
1回答

慕田峪4524236

如果您可以提取表达式并将它们格式化以删除逗号等(即.replace(",", "")),那么您可以在 a 中运行代码ScriptEngine以自动解析和执行表达式。ScriptEngineManager factory = new ScriptEngineManager();// create a JavaScript engineScriptEngine engine = factory.getEngineByName("JavaScript");// evaluate JavaScript code from StringObject x = engine.eval("100 * 3");根据您传递给 eval 方法的字符串,它将返回什么样的对象。
随时随地看视频慕课网APP

相关分类

Java
我要回答