空指针访问:该变量在此位置只能为空

for(int i=0;i<n;i++){ for(int j=0;j<26;j++){ if(str.charAt(i)== strChar.charAt(j) ) * strSet1.append(str.charAt(i)); } * strSet2.append(str.charAt(i)); } 

例外:

 Exception in thread "main" java.lang.NullPointerException at AterSeries.main(AterSeries.java:33) 

为什么这段代码给出了空指针exception

警告:空指针访问:变量strSet1在此位置只能为空Null指针访问:变量strSet2在此位置只能为null

strSet1strSet2在此之前是否strSet1初始化? 如果它们为null,则会出现NullPointerException

*编辑*

您不能在null变量上调用.append() (或任何其他方法)。 将它们初始化为:

 StringBuffer strSet1 = new StringBuffer(); StringBuffer strSet2 = new StringBuffer();