[英]stripping input causing null pointer
我正在尝试创建一种方法,该方法会去除一串空格和标点符号,以检查它是否是回文。 填充剥离字符的字符数组时,出现空指针异常。 对我来说,这很有意义,我只用字母或数字填充相同长度的数组。 如果还有剩余的字符,那么我用一个空格填充它们(以后要用修剪剥离)。 没有char [] strippedInput = null; 我得到的变量可能尚未初始化。 有了它,我得到空指针异常。 我画了一个简单的图表,说明当我输入“如果,那么”时,剥离后的数组会发生什么。 一切似乎都匹配。 每个strippedInput数组索引似乎都有一个值,但是netbeans告诉我某些东西为空。
static boolean palindromeCheckC(String inputString)
{
boolean isPalin2 = false;
char[] inChars = inputString.toCharArray();
char[] strippedInput = null;
int offsetIndex = 0;
for (int i = 0; i < inputString.length(); i++)
{
if ((Character.isLetter(inChars[i]) || Character.isDigit(inChars[i]
)) == true)
{
strippedInput[i-offsetIndex] = inChars[i];
}
else offsetIndex++;
}
for (int i = inputString.length()- offsetIndex; i < inputString.length(); i++)
{
strippedInput[i] = ' ';
}
System.out.println(strippedInput);
//to string
//reverse
//compare to if 0 => isPalin2 = true
return isPalin2;
}
问题是您没有将数组初始化,而是将其设置为null。 尝试更改:
char[] strippedInput = null;
至
char[] strippedInput = new char[inputString.length()];
我知道strippedInput
可能包含的字符少于inputString
中的字符。 但是,据我所知,剥离后的数组中可能需要使用相同数量的字符。 如果不需要所有这些,只需在数据末尾写一个空字符,它便可以正常工作/打印。 无论如何,这将解决您的NullPointerException
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.