2010-03-13 125 views
0

帮助我如何能得到例如整数codeInt = 082从字符串代码=“A082” 我已经试过这样:需要与parseInt函数

int codeInt = Integer.parseInt(code.substring(1,4)); 

,我也得到codeInt = 82,离开第一0但我想要完整的代码'082'。

我想到parseInt(String s, int radix)但我不知道如何。

任何帮助将不胜感激。
谢谢。

+0

@Mona - 正如托马斯所说,你将不得不使用字符串,因为082不是一个整数/八进制。 – RubyDubee 2010-03-13 15:18:50

回答

2

一个整数只是存储一个数字。数字82和082(以及0082和000000082)完全相同(除非您以某种语言将它们放入源代码中,那么您将得到编译器错误)。

如果你非常需要前导零,那么你应该把它作为一个字符串,或者适当地格式化数字以便稍后输出。


由于具有巧妙想法,与前面的零写入八进制常数将降温的C设计师。好像0o123这样的东西本来难以实现,一旦你已经有0xf00 ...

0

如果你想要0000123那么你需要威胁变量作为一个字符串,而不是整数。简单地说:123等于00012301230000...1 billion zeros here...000123

但是,如果你只是想显示一个固定长度的数字,然后使用System.out.format()

1

820820082在数学上是相同的编号,并且由位的相同序列来表示。您不能在int中编码前导零的数量(尽管您可以使用任意格式打印它)。

还要注意082距离爪哇字面082,它为一种(无效的)不同的八进制文字。

int i = 010; 
System.out.println(i); // this prints 8 
1

082不是整数。它是一个表示整数82的字符串。如果您需要保持前导零不变,则需要使用字符串。如果您只需要打印082,则可以使用java.text.MessageFormatSystem.out.format()或其他类似的解决方案以这种方式进行打印。

+0

+1 - 你说过哥们! – RubyDubee 2010-03-13 15:17:40