parseInt() 方法会删除所有零吗?



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

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

变量"i"one_answers"j"总是从0到9。一个位数。但是,如果"i"是0,那么parseInt()方法会删除它。

例如:当i=0和j=6时,变量"getal"的结果将是6,而不是06。我需要是06。有人可能知道将字符串转换为int的其他方法吗?

整数不能是"06"-它要么是6,要么是字符串。

因此,setId将不会看到"06"one_answers"6"之间的任何差异。

如果您真的需要前导Zero,您可以将其保存为Stringint[]

难道不应该只使用s来表示所需的值吗?整数只存储数字,06和6是相同的数字,所以当你用整数存储时,你会得到6而不是06。

前导零不是数字的的属性,而是其表示形式作为字符串的属性。

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

您想要的不是将字符串转换为int的另一种方式,而是将int转换为字符串的另一个方式,以便使用所需格式向用户显示值。

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

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

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

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

您可以而不是使用int类型获得精确的值06,因为它仅定义为值6。因此,必须使用String或类似结构来对值06进行建模。

最新更新