gpt4 book ai didi

java - 为什么出现空指针异常但我检查了没有null

转载 作者:行者123 更新时间:2023-11-30 07:12:15 25 4
gpt4 key购买 nike

public static boolean isIsomorphic(String s, String t) {
HashMap<Character, Character> res1 = new HashMap<Character, Character>();
HashMap<Character, Character> res2 = new HashMap<Character, Character>();
char[] sToArray = s.toCharArray();
char[] tToArray = t.toCharArray();
if (s == null && t == null)
return true;
if (s == null || t == null || s.length() != t.length())
return false;
for (int i = 0; i < sToArray.length; i++) {
***if ((!res1.containsKey(sToArray[i])) && (!res2.containsKey(tToArray[i])))*** {
res1.put(sToArray[i], tToArray[i]);
res2.put(tToArray[i], sToArray[i]);

} else {

if ((res1.get(sToArray[i]) != tToArray[i]) || (res2.get(tToArray[i]) != sToArray[i]))
return false;

}

}
return true;

}

给定两个字符串 s 和 t,确定它们是否同构。当测试用例为“ab”“aa”时;将会出现空指针异常if ((!res1.containsKey(sToArray[i])) && (!res2.containsKey(tToArray[i])))我检查了 res1 不等于 null,res2 不等于 null。有人能说出原因吗?非常感谢!

最佳答案

可能发生的情况是 res1.get(sToArray[i])null。然后,您将该 Characterchar 进行比较,这需要对 Character 进行拆箱操作 - 但它为 null,并且会引发 NPE。

请注意,如果存在与该键关联的 null 值,res1.containsKey(sToArray[i]) 将返回 true。

关于java - 为什么出现空指针异常但我检查了没有null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39041507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com