这可能是一个愚蠢的问题。
当我尝试构建一些方法,如“八进制到十进制有效”时,我被提醒有文字可以完成这项工作。这将是系统内置的最快,按位,内置。
对于八进制,前缀为'0'。
对于十六进制,前缀为“0x”。
参考:https://en.wikibooks.org/wiki/Java_Programming/Literals
for (int i=10; i<18; i++)
System.out.println("Octal: " + ( 0 prefix i ));
当然我知道prefix
这个词不起作用。当然我知道符号是文字。但是,如果我们实际上可以prefix
它,并让系统进行本机转换。是不是必须是最有效率?
而且,为什么不能? (文字是文字,正如JLS所说,是不可接受的答案。)
答案 0 :(得分:4)
因为文字是在编译时评估的。您想评估运行时。
在Java中,您始终可以使用toString
方法以10以外的任何其他基数显示您的值。在您的情况下:
for (int i=10; i<18; i++)
System.out.println("Octal: " + Integer.toString(i, 8));
输出:12,13,....
或者,如果你想迭代八进制数,只需将它们放在那里:
for (int i=010; i<018; i++)
System.out.println("Octal: " + Integer.toString(i, 8));
输出:10,11,....
答案 1 :(得分:0)
文字只能帮助您在源代码中编写十进制,十六进制,八进制等。它们仍然在编译时转换为原语。
对于转换,您需要一些字符串实用程序,如String.format()
。