使用字符串数组时Java中的空指针异常

时间:2015-06-10 20:51:58

标签: java arrays

我有一段代码,程序比较两个字符串数组的值。我得到了java.lang.NullPointerException,即使我初始化了两个数组。以下是相关代码:

String[] functions=new String [inputs+1];
int funCounter=0;
for (int a=0;a<2;a++)
{
    for (int b=0;b<2;b++)
    {
        if (tokenizedString[b].equals(keywords[a])&&keywords[a].equals("add"))
        {
            System.out.println("Yay");
            functions[funCounter]="add";
            funCounter++;
        }
        }
    }

这是我inialize tokenizedString的地方:

String[] tokenizedString;
    tokenizedString=new String[2];

tokenizedString在此处添加到流中的扫描程序:

StringTokenizer st = new StringTokenizer(input," ");

这是我初始化关键字的地方:

String[] keywords;
    keywords=new String[2];

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:1)

当您访问tokenizedString [n]时,字符串数组将为您提供第n个元素。如果第n个元素未初始化,则对于对象数组,它将默认为null。

在这种情况下避免空值检查的更好方法是,如果您确定另一个值永远不为空,则切换字符串值的位置。所以而不是:

 tokenizedString[b].equals(keywords[a])

使用:

 keywords[a].equals(tokenizedString[b])