gpt4 book ai didi

java - 如何在jscience中获取完整的单位名称

转载 作者:行者123 更新时间:2023-11-29 03:10:25 25 4
gpt4 key购买 nike

我正在使用 jscience 为我解析一些单位:

    Unit<?> meter = Unit.valueOf("m");
System.out.println(meter);

Unit<?> foot = Unit.valueOf("ft");
System.out.println(foot);

打印出来:

m
ft

我想把它打印出来

metre 
foot

或者类似这样的东西。实际上,我实际上是在读取这些单位字符串,我无法控制用户键入的内容,因此我希望有些人键入“m”,有些人键入“mere”。显示回来时,我想始终将其显示为“米”。

[限制]

该程序是一个大型数据存储程序,存储许多不同类型的量。用户可以存储任意数量的任意维度(只要它在 UCUM 中定义)。

最佳答案

您可以使用 UnitFormat类来指定如何打印这些类。使用 label指定名称的方法,以及 alias协助解析的方法。

import java.io.IOException;

import javax.measure.unit.Unit;
import javax.measure.unit.UnitFormat;

public class ScienceUnit {

public static void main(String[] args) throws IOException {
Unit<?> meter = Unit.valueOf("m");

StringBuilder sb = new StringBuilder();
UnitFormat instance = UnitFormat.getInstance();

instance.label(meter, "Metre");
instance.format(meter, sb);

System.out.println(sb.toString());
}
}

输出:

Metre

请注意,如果您从此程序中删除 instance.label 行,则输出为:

m

默认值是您在原始帖子中描述的缩写形式。我假设默认值为 short form values described by UCUM ,但我还没有实际检查过。

关于java - 如何在jscience中获取完整的单位名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29678036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com