parseInt()方法是否删除所有零?

时间:2012-01-22 14:30:37

标签: java android parseint

我正在使用此代码设置任何按钮的ID:

String s = "" + i + j;
int getal = Integer.parseInt(s);
button.setId(getal);

变量“i”和“j”始终为0 tot 9.单个数字。但是,如果“i”为0,那么parseInt()方法会删除它,我认为。

例如:当i = 0且j = 6时,变量“getal”的结果将为6而不是06.我需要它为06.有人可能知道另一种将字符串转换为整数的方法吗?

6 个答案:

答案 0 :(得分:3)

整数不能是“06” - 它是6或它是一个字符串。

因此,setId在“06”和​​“6”之间不会有任何区别。

如果您真的需要领先的零,您可以将其另存为Stringint[]

答案 1 :(得分:1)

你不应该使用s代表你需要的价值吗?整数只存储数字,06和6是相同的数字,因此当你以整数存储它时,你会得到6而不是06.

答案 2 :(得分:1)

前导零不是数字的的属性,它们是表示的字符串属性。

Integer.parseInt() 解析字符串以确定相应的整数值。提取值后,格式化必然会丢失。

您想要的不是将字符串转换为整数的另一种方法,而是将整数转换为字符串的另一种方式,以显示将值添加到用户所需的格式。

答案 3 :(得分:1)

整数是用于存储整数的数据类型。数据类型本身不对其表示负责(即6,06,0x06,00000110都是6号的有效潜在格式)。

如果您需要特定格式,则需要将其存储在字符串中。

答案 4 :(得分:0)

您可以获取具有06类型的确切值int,因为其定义为值6。因此,您必须使用String或类似结构来对值06进行建模。

答案 5 :(得分:0)

正如@Johan所说,整数不能包含前导零。如果你想坚持使用整数,你可以格式化输出

int getal = Integer.parseInt(s);
NumberFormat formatter = new DecimalFormat("00");
button.setId(formatter.format(getal));