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);
}
}
}