java - Java中使用字符串数组时出现空指针异常

标签 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++;
        }
        }
    }

这是我初始化 tokenizedString 的地方:

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

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

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

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

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

有什么想法吗?谢谢!

最佳答案

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

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

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

用途:

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

关于java - Java中使用字符串数组时出现空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30767082/

相关文章:

java - 了解 java 中的有符号数和补码

java - EhCache Weblogic死锁?

java - 轻量级 Map 实现 Java(内存开销很小)

javascript - 根据不同的参数javascript创建一个字符串

c++ - 添加不同类型的数组 (c++)

arrays - 如何从Delphi函数返回数组?

java.lang.NoClassDefFoundError : Could not initialize class org. apache.jmeter.gui.util.MenuFactory

javascript - html 表单数组转 JSON

Javascript:根据给定值计算数组比率

java - 大输入的运行时错误