我如何从String code ='A082'获得整数codeInt = 082 我试过这个:
int codeInt = Integer.parseInt(code.substring(1,4));
我得到codeInt = 82,它留下第一个0,但我想要完整的代码'082'。
我想到parseInt(String s, int radix)
,但我不知道如何。
任何帮助将不胜感激 感谢。
答案 0 :(得分:2)
整数只存储一个数字。数字82和082(以及0082和000000082)完全相同(除非您以某种方式将它们放入某些语言的源代码中,否则您将收到编译器错误) 1
如果您迫切需要前导零,那么您应该将其保留为字符串,或者将数字格式化以便稍后输出。
1 由于C设计师巧妙地认为用前面的零写八进制常量会很酷。好像0o123
之类的内容在您已经0xf00
...
答案 1 :(得分:1)
号 82
和082
以及0082
在数学上是相同的数字,并由相同的位序列表示。您无法对int
中的前导零数进行编码(尽管您可以使用您选择的任何格式打印它)。
另请注意, number 082
与 Java literal 082
不同,后者是(无效的)八进制文字。
int i = 010;
System.out.println(i); // this prints 8
答案 2 :(得分:1)
082不是整数。它是一个表示整数82的字符串。如果您需要保持前导零不变,则需要使用字符串。如果您只需要打印082,则可以使用java.text.MessageFormat
或System.out.format()
或其他类似解决方案以此方式打印。
答案 3 :(得分:0)
如果你想要0000123
,那么你需要将变量威胁为String而不是整数。简单来说:123
等于000123
和0123
以及0000...1 billion zeros here...000123
。
但如果您只想显示固定长度的数字,请使用System.out.format()
。