May 18,2007:
May 18,2007:
There is a sample of exhaustive a char dictionary.
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.*;

public class Test...{
public static void 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());
}
}

public void 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.*;

public class Test...{
public static void 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());
}
}

public void 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);
}
}
}
本文介绍了一个使用Java实现的遍历字符字典并利用正则表达式筛选匹配项的示例。通过递归搜索所有可能的组合,并将符合[a-z][a-z][a-z]模式的结果收集到TreeSet中去除重复项。
1999

被折叠的 条评论
为什么被折叠?



