0

例如,我如何从 String code='A082' 获得整数 codeInt=082 我试过这个:

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

我得到 codeInt=82 ,它留下了第一个 0 但我想要完整的代码'082'。

我想过,parseInt(String s, int radix)但我不知道怎么做。

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

4

4 回答 4

2

整数只存储一个数字。数字 82 和 082(以及 0082 和 000000082 就此而言)完全相同(除非您以这种方式将它们放入某些语言的源代码中,否则您会得到编译器错误)1

如果您迫切需要前导零,那么您应该将其保留为字符串,或者适当地格式化数字以便稍后输出。


1由于 C 设计者有一个巧妙的想法,即用前面的零编写八进制常数会很酷。好像0o123一旦你已经获得了类似的东西就很难实现0xf00......

于 2010-03-13T13:02:45.140 回答
1

数字 82082和在0082数学上是相同的数字,并且由相同的位序列表示。您不能在 an 中编码前导零的数量int(尽管您当然可以使用您选择的任何格式打印它)。

另请注意,该数字 082Java 文字 082不同,后者是(无效的)八进制文字。

int i = 010;
System.out.println(i); // this prints 8
于 2010-03-13T13:03:23.703 回答
1

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

于 2010-03-13T13:03:46.863 回答
0

如果需要0000123,则需要将变量威胁为字符串而不是整数。简单地说:123等于000123and01230000...1 billion zeros here...000123

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

于 2010-03-13T13:03:23.150 回答