首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在jscience中获得完整的单元名称

如何在jscience中获得完整的单元名称
EN

Stack Overflow用户
提问于 2015-04-16 14:37:40
回答 1查看 893关注 0票数 1

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

代码语言:javascript
复制
    Unit<?> meter = Unit.valueOf("m");
    System.out.println(meter);

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

这张打印出来:

代码语言:javascript
复制
m
ft

我想把它打印出来

代码语言:javascript
复制
metre 
foot

或者类似这样的东西。实际上,我在这些单位字符串中阅读,我无法控制用户的类型,所以我希望一些人输入"m",有些人键入“m”。当我把它放回去的时候,我想把它放回“米”的位置。

限制

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-16 14:52:06

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

代码语言:javascript
复制
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());
  }
}

输出:

代码语言:javascript
复制
Metre

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

代码语言:javascript
复制
m

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29678036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档