我在 logcat 中不断收到“无效 int”错误,如何纠正此错误?
check.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
digits.replaceAll("[^0-9]","");
String[] guessArray = digits.split("");
int[] guessInt = new int[6];
for(i=0;i<5;i++){
guessInt[i] = Integer.parseInt(guessArray[i]);
if(guessInt[i] == actualInt[i]){
correct++;
}
else{
easyGuessDisplay.setText("Sorry! Try again!");
break;
}
}
}
});
在本例中,digits
是一个字符串,我将其拆分为一个数组,然后将每个索引的值与之前存储的数组进行比较。我遇到崩溃并且 logcat 对我大喊大叫:
java.lang.NumberFormatException: Invalid int: ""
at java.lang.Integer.invalidInt(Integer.java:138)
at java.lang.Integer.parseInt(Integer.java:358)
at java.lang.Integer.parseInt(Integer.java:334)
我想从 digits
中提取所有整数并将它们存储在一个新数组中进行比较。
最佳答案
字符串是不可变的,因此不会就地修改。
你需要
digits = digits.replaceAll("[^0-9]","");
此外,split("")
在 Java 8 之前将返回前导空字符串。您也需要考虑到这一点。
可能会,
guessInt[i] = Integer.parseInt(guessArray[i + 1]);
关于java - 从 Java 字符串中提取 Int 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32366196/