我有一个字符串。我将其拆分并存储为char
数组。我正在尝试使用它进行转换,但Integer.parseInt
出现错误。如何将 String 转换为 int?
这是我的代码:
String tab[]= null;
tab=pesel.split("");
int temp=0;
for(String tab1 : tab)
{
temp=temp+3*Integer.parseInt(tab1); //error
}
假设您有一串数字(例如"123"
),您可以toCharArray()
改用:
for (char c : pesel.toCharArray()) {
temp += 3 * (c - '0');
}
这完全避免Integer.parseInt()
了。如果要确保每个字符都是数字,可以使用Character.isDigit()
.
您的错误是因为str.split("")
数组中包含前导空字符串:
System.out.println(Arrays.toString("123".split("")));
[, 1, 2, 3]
现在,有一个使用负前瞻的技巧来避免这种情况:
System.out.println(Arrays.toString("123".split("(?!^)")));
[1、2、3]
虽然,无论如何,我更喜欢上面显示的方法。
您错过了拆分方法的空白。
tab=pesel.split(" ");