【发布时间】:2014-05-01 01:47:58
【问题描述】:
我有一个字符串输入,我正在尝试将其转换为字符数组,然后以允许我在信用卡程序中使用它们的方式存储该数组中的数字。这就是我目前正在尝试的方式。
我目前在以下位置收到空指针异常:
charDigits[x - invalid] = charInput[x];
我需要能够从字符串输入中使用信用卡算法中的整数。
public class testFunction {
private char[] charInput;
private char[] charDigits;
private int[] intInput;
private int invalid = 0;
private String input = "125-6543-3356";
public testFunction()
{
charInput = input.toCharArray();
for(int x = 0; x < charInput.length; x++)
{
if (charInput[x] == '0' || charInput[x] == '1' || charInput[x] == '2' || charInput[x] == '3' || charInput[x] == '9' ||
charInput[x] == '4' || charInput[x] == '5' || charInput[x] == '6' || charInput[x] == '7' || charInput[x] == '8')
{
charDigits[x - invalid] = charInput[x];
}
else
{
invalid++;
}
System.out.println("charDigits: " + x + ": " + charDigits[x] );
}
for(int i = 0; i < charDigits.length; i++)
{
intInput[i] = Integer.parseInt(charDigits[i] + "");
}
}
public static void main(String[] args)
{
testFunction test = new testFunction();
}
}
【问题讨论】:
-
尝试使用
if(c >= '0' && c <= '9')之类的东西,而不是将所有||链接在一起。如您所见,here0到9的代码点是连续的。
标签: java arrays string char integer