Java单元转换

Java单元转换,java,jscience,Java,Jscience,我有一个数据库表,其中存储了单位名称的全称,如升、千克、毫升、毫克等。。我需要一个库来重新调整这些单位,并将其转换为我想要的单位。我该怎么做 代码逻辑: 我将从数据库中读取单位“升”,我希望将其转换为毫升,这样输入为“20升”,输出为“20000毫升” 我下载了JScience库,但我不知道如何做到这一点。请告诉我如何使用或建议任何替代方案。如果你用一个代码示例来解释我会更好。谢谢 我不知道JScience提供了一种解析字符串的工具,比如“20升”(这种拼写让我感到害怕…),所以您可能需要自己处

我有一个数据库表,其中存储了单位名称的全称,如升、千克、毫升、毫克等。。我需要一个库来重新调整这些单位,并将其转换为我想要的单位。我该怎么做

代码逻辑:

我将从数据库中读取单位“升”,我希望将其转换为毫升,这样输入为“20升”,输出为“20000毫升”


我下载了JScience库,但我不知道如何做到这一点。请告诉我如何使用或建议任何替代方案。如果你用一个代码示例来解释我会更好。谢谢

我不知道JScience提供了一种解析字符串的工具,比如“20升”(这种拼写让我感到害怕…),所以您可能需要自己处理,将字符串标记为数量和单位

一旦有了它,您就可以使用JScience在单位之间轻松地进行转换,尽管从升到毫升的转换显然是微不足道的。但在原则上,它是这样的:

Measure<Integer, Volume> input = Measure.valueOf(20, NonSI.LITRE);
Measure<Integer, Volume> output = input.to(SI.MILLI(NonSI.LITRE));

System.out.println(output);
Measure input=Measure.valueOf(20,非升);
测量输出=输入到(千分之一(非千分之一升));
系统输出打印项次(输出);
我倾向于说使用,但它确实超出了您在这里的需要,尽管它确实解决了问题

20 litres -> milliliters
//gives 20000

这只是一种很酷的小语言。在java中,您必须像其他脚本库一样运行它。该网站有大量信息

我可以将单位与数字分开。但是我们能否让JScience理解“升”是指标准的非升。问题是我有很多这样的单元,所以我很难为我使用的每一个单元编写hal=ndling代码。那么我们怎么做呢?@Deepak:不,你必须自己解析这些单元。没有那么多。毫升数归在哪里?我在SI和NonSI中找不到它…我可以像这样使用SI.mill(NonSI.lil)@迪帕克:是的,这就是我的答案。它是一个库,我可以插入到我现有的应用程序中并使用它吗?它真的是一种完全基于编程语言,基于计算和单位转换的思想。但您可以将其用作Java应用程序中的库。请参阅此处的文档:谢谢你的建议,伙计。。我也会看一看。事实上,我开始为JScience写我自己的措辞。但是Frink真的是个好东西。。。如果我不能成功地使用JScience,我将尝试一下。非常感谢你!!!不客气。如果你发现你有很多不同类型的单位(升、米、磅、立方英尺等),它可能会很有用。jar文件大约是1Mb,所以如果这不是什么大问题,我会添加它,即使只是用于基本单位转换