There is a sample of exhaustive a char dictionary.
import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.*; publicclass Test...{ publicstaticvoid main(String args[])...{ new Test(); } String[] chars =...{"a","b","c"}; //This string array is use to stored char dictionary. String patternStr="[a-z][a-z][a-z]"; //Defined regularexpression to match traverse/ergod result String output =""; Set set =new TreeSet(); //Set store distinct record into is reason for/why defined a tree set rather then array list. Pattern pattern = Pattern.compile(patternStr); public Test()...{ int j= chars.length; search(0,chars,output); for(Iterator it = set.iterator();it.hasNext();)...{ System.out.println(it.next()); } } publicvoid search(int i,String[] chs,String output)...{ if(i==chars.length)...{ Matcher matcher = pattern.matcher(output); if(matcher.matches())...{ set.add(output); } return; } for(int j =0; j<chars.length;j++)...{ //ergod the char dictionary output = output+chs[j]; search(i+1,chs,output); output = output.substring(0,output.length()-1); search(i+1,chs,output); } } }
import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.*; publicclass Test...{ publicstaticvoid main(String args[])...{ new Test(); } String[] chars =...{"a","b","c"}; //This string array is use to stored char dictionary. String patternStr="[a-z][a-z][a-z]"; //Defined regularexpression to match traverse/ergod result String output =""; Set set =new TreeSet(); //Set store distinct record into is reason for/why defined a tree set rather then array list. Pattern pattern = Pattern.compile(patternStr); public Test()...{ int j= chars.length; search(0,chars,output); for(Iterator it = set.iterator();it.hasNext();)...{ System.out.println(it.next()); } } publicvoid search(int i,String[] chs,String output)...{ if(i==chars.length)...{ Matcher matcher = pattern.matcher(output); if(matcher.matches())...{ set.add(output); } return; } for(int j =0; j<chars.length;j++)...{ //ergod the char dictionary output = output+chs[j]; search(i+1,chs,output); output = output.substring(0,output.length()-1); search(i+1,chs,output); } } }