regex - Inherited Null Pointer Exceptions (Java) -


in program writing have following code create regular expression word , retrieve words match series of different arraylists.

public arraylist<string> solveword(string str) {     string regex = "";     string[] strarr = str.split("");     (string temp : strarr)     {         if (temp.equals(" "))         {             regex = regex + "[a-z]";         }         else         {             string s = "[" + temp + "]";             regex = regex + s;         }      }     int x = str.length();     arraylist<string> m = null;     system.out.println("2ns");      switch (x)       {      case 1:  break;      case 2:  m = let2;               break;      case 3:  m = let3;             break;      case 4:  m = let4;             break;      case 5:  m = let5;             break;      case 6:  m = let6;             break;      case 7:  m = let7;             break;      case 8:  m = let8;             break;      case 9:  m = let9;             break;      case 10:  m = let10;             break;      case 11:  m = let11;             break;      case 12:  m = let12;             break;      case 13:  m = let13;             break;      case 14:  m = let14;             break;      case 15:  m = let15;             break;      case 16:  m = let16;             break;      }        system.out.println(" ns");     arraylist<string> trans = retrieve(str,m,regex);     return trans; }  private arraylist<string> retrieve(string word, arraylist<string> arr, string reg) {     arraylist<string> ex = arr;     arraylist<string> matches = new arraylist<string>();     (string temp : ex)     {         if (temp.matches(reg))         {             matches.add(temp);         }     }     return matches; } 

when call solve(string str) class, line "strarr = str.split(""); throws null pointer exception. other problem having when test class on own, line if(temp.matches(reg)) gives following error.

exception in thread "main" java.util.regex.patternsyntaxexception: unclosed character     class near index 12 [][h][a-z][h]             ^ @ java.util.regex.pattern.error(unknown source) @ java.util.regex.pattern.clazz(unknown source) @ java.util.regex.pattern.sequence(unknown source) @ java.util.regex.pattern.expr(unknown source) @ java.util.regex.pattern.compile(unknown source) @ java.util.regex.pattern.<init>(unknown source) @ java.util.regex.pattern.compile(unknown source) @ java.util.regex.pattern.matches(unknown source) @ java.lang.string.matches(unknown source) @ words.fillintheblanks.retrieve(fillintheblanks.java:238) @ words.fillintheblanks.solveword(fillintheblanks.java:228) @ words.tester.main(tester.java:12) 

can please help?

you cannot have empty square brackets [] in regex. have check if temp not empty before producing regex:

if (temp.equals(" ")) {     regex = regex + "[a-z]"; } else if (temp.length() > 0) {     string s = "[" + temp + "]";     regex = regex + s; } 

as nullpointerexception, possibility of happening in line string[] strarr = str.split(""); str null.


Comments

Popular posts from this blog

windows - Single EXE to Install Python Standalone Executable for Easy Distribution -

c# - Access objects in UserControl from MainWindow in WPF -

javascript - How to name a jQuery function to make a browser's back button work? -