2010-10-23 50 views
2

Short.parseShort(String s, int radix)存在,与Integer.parseInt(String s, int radix)Long.parseLong(String s, int radix)一样。Short.toString(short s,int radix)在哪里?

Integer.toString(int i, int radix)Long.toString(long l, int radix)存在。

Short.toString(short s)Integer.toString(int i)Long.toString(long l)都存在。

那么为什么没有Short.toString(short s, int radix)? (这不可能是因为你总是可以将你的短语转换为int并使用类的方法,但是可以用同样的理由来摆脱它;你总是可以将int转换为long并使用Long类的版本。)

回答

2

看看的Short.toString(short s)实现:

public static String toString(short s) { 
    return Integer.toString((int)s, 10); 
} 

所以,只需使用Integer。 (请注意,IntegerLong的实现方式不同)

+0

实现的唯一区别是char [] buf的大小更大,对吗?那么为什么不在Short类中使用更小buf的实现呢? – 2010-10-23 20:12:37

+0

同样适用于'Byte'顺便说一句 - 它使用'Integer'。我认为这是一个不必要的优化。 – Bozho 2010-10-23 20:14:43

+0

@Tom:因为它不值得。一般来说,你应该比'short' /'byte'更喜欢'int'。比'float'更喜欢'double'。 – polygenelubricants 2010-10-23 20:14:51

1

该论据,您可以使用Integer.toString(int,int)!

看的Short.toString(短)(Java 6中)的代码,它底层使用的整数版本:

public static String toString(short s) { 
    return Integer.toString((int)s, 10); 
}