我有一个名为Strings
的{{1}}数组。当我尝试执行以下代码行时,我得到letters
。
NullPointerException
if(letters[j].equals(tmpst))
是一个小于j
letters
是一个字符串,定义如下:
tmpst
其中char myChar = theWord.charAt(i);
String tmpst = String.valueOf(myChar);
是长度大于4的任意字符串。
完整的代码是:
theWord
有人能看出我做错了吗?
感谢。
答案 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()
方法