-5

我有一个字符串。我将其拆分并存储为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
}
4

2 回答 2

2

假设您有一串数字(例如"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]

虽然,无论如何,我更喜欢上面显示的方法。

于 2013-10-24T18:29:25.587 回答
0

您错过了拆分方法的空白。

tab=pesel.split(" ");
于 2013-10-24T18:30:05.337 回答