Null pointer access: The variable can only be null at this location

sky picture sky · Nov 17, 2013 · Viewed 13.7k times · Source
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:

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

why this code gives null pointer exception

warning: Null pointer access: The variable strSet1 can only be null at this location Null pointer access: The variable strSet2 can only be null at this location

Answer

t0mppa picture t0mppa · Nov 17, 2013

Are strSet1 and strSet2 initialized before this? If they are null, you'd get a NullPointerException.

* EDIT *

You cannot call .append() (or any other method) on a variable that is null. Initialize them as:

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