字符串的比较抛出NullPointerException

时间:2012-10-11 03:54:43

标签: java arrays string comparison nullpointerexception

我有一个名为Strings的{​​{1}}数组。当我尝试执行以下代码行时,我得到letters

NullPointerException

if(letters[j].equals(tmpst)) 是一个小于j

长度的任意索引

letters是一个字符串,定义如下:

tmpst

其中char myChar = theWord.charAt(i); String tmpst = String.valueOf(myChar); 是长度大于4的任意字符串。

完整的代码是:

theWord

有人能看出我做错了吗?

感谢。

4 个答案:

答案 0 :(得分:1)

您的数组似乎包含一些空引用。您可以使用Arrays.toString(letters)查看是否属实。

如果您希望即使您的数组包含空值,您的comparisson仍然有效,您应该将代码更改为:

if(tmpst.equals(letters[j]))

答案 1 :(得分:0)

如果表达式letters.length评估没有问题,那么letters[j]为空,这是唯一的可能性。你不能在空引用上调用方法。

如果它是空的,你应该写一些东西,如下所示:

if (letters[j] != null && letters[j].equals(tmpst)) {

答案 2 :(得分:0)

您需要了解其中的差异 例如,有一个String myString。现在myString == null和myString.equals(“”)是两个不同的东西。
在使用myString.equals("")之前,您必须确保您的字符串已初始化且不为null。所以,你的错误就是因为你的字符串对象在任何索引处都没有初始化。
尝试使用myString == null来检查它。随意询问你是否有任何歧义:)< / p>

答案 3 :(得分:0)

首先检查!=null,然后使用.equals()方法..... 因为null不是字符串。所以不能用户.equals()方法