【问题标题】:Why is there no String.valueOf(short a);为什么没有 String.valueOf(short a);
【发布时间】:2015-10-05 10:00:09
【问题描述】:

我不得不对一个字符串进行short,我能做到的唯一方法就是用它连接一个空字符串,这是正确的方法吗?

PS,为什么没有String.valueOf(short a)

【问题讨论】:

  • 为什么不直接使用它可以隐式转换为int 的事实呢? short x = 10; String y = String.valueOf(x); 应该可以正常工作。
  • 你不能简单地将 short 提升为 int 吗? String.valueOf((int) a);这种情况下没有精度损失,是吗?
  • @Jagger 是隐式提升的,所以不需要做任何事情。与byte 相同。
  • 那就更好了。 :)
  • @JonSkeet 试过了,但我一定错过了一些东西,而且它工作得很好,谢谢......

标签: java casting short


【解决方案1】:

因为 JDK 的创建者认为不需要它。

如果您很短,您可以直接致电String.valueOf(int)

请注意,即使Short.toString(short) 也被实现为return Integer.toString((int)s, 10);

【讨论】:

    【解决方案2】:

    你可以使用

     short s = 5
     String str = String.valueOf(s); // s is widened to int.
    

     String str = Short.toString(s);
    

    添加 String.valueOf(short) 不会有太大变化。

    【讨论】:

      【解决方案3】:

      String.valueOf(short a); 不需要,因为String.valueOf(int a); 是等效的,因此在 String API 中将是多余的。

      为了使用 Short 内置函数使用:

      Short.toString(short);

      此外,正如Jon Skeet 所指出的那样:

      为什么不直接使用它可以隐式转换为 int 的事实呢? short x = 10; String y = String.valueOf(x); 应该可以正常工作

      String.valueOf(int);

      【讨论】:

        猜你喜欢
        • 2014-07-03
        • 2011-03-09
        • 1970-01-01
        • 1970-01-01
        • 2018-11-06
        • 2015-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多