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



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

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

这打印出来:

m
ft

我想打印出来

metre 
foot

或类似的东西。 实际上,我实际上是在阅读这些单位字符串,我无法控制用户键入的内容,因此我希望有些键入"m",有些键入"米"。 当它显示回来时,我希望总是把它显示为"米"。

[限制]

该程序是一个大型数据存储程序,存储许多不同类型的数量。 用户可以存储任何维度的任意数量(只要它在 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

默认值是您在原始帖子中描述的简短形式。我假设默认值是UCUM描述的简写值,但我实际上没有检查过。

最新更新