繁体   English   中英

剥离输入导致空指针

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM