我正在使用此代码设置任何按钮的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,您可以将其保存为String
或int[]
难道不应该只使用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
进行建模。