以下程序可以輸出如:
?aaa aab aac ...... aba abb ...... edd ede edf ...... zzx zzy zzz
的連續字符串。
修改START_STRING和END_STRING,也可以輸出任意位數的連續字符串,可用于窮舉遍歷。
代碼如下:
?1?import?java.io.*;
?2?
?3?/**
?4??*@author??comstep
?5??*@website?http://www.tkk7.com/tripper
?6??*/
?7?
?8?public?class?AToZ?
?9?{
10???private?String?str?=?"";
11???private?int?length?=?0;
12???private?char[]?ch;
13?
14???public?AToZ(String?str)
15???{
16?????this.str?=?str;
17?????this.length?=?str.length();
18?????this.ch?=?str.toCharArray();
19???}
20?
21???public?String?getNextString()
22???{
23?????for?(int?i?=?0,?j?=?length?-?1;?i?<?length?&&?j?>=?0;?i?++)
24?????{
25???????if?(ch[j]?!=?'z')
26???????{
27?????????ch[j]?++;
28?????????break;
29???????}
30???????else
31???????{
32?????????ch[j]?=?'a';
33?????????j?--;
34?????????continue;
35???????}
36?????}
37?
38?????return?new?String(ch);
39???}
40?
41???public?static?void?main(String[]?args)?throws?Exception
42???{
43?????String?START_STRING?=?"aaa";
44?????String?END_STRING?=?"zzz";
45?
46?????AToZ?aTOz?=?new?AToZ(START_STRING);
47?
48?????FileOutputStream?fout?=?new?FileOutputStream("out.txt");
49?
50?????PrintWriter?printWriter?=?new?PrintWriter(fout);
51?
52?????printWriter.println(START_STRING);
53?
54?????int?count?=?1;
55?
56?????while(true)
57?????{
58???????START_STRING?=?aTOz.getNextString();
59?
60???????printWriter.println(START_STRING);
61?
62???????System.out.println(START_STRING);
63?
64???????count?++;
65?
66???????if?(START_STRING.equals(END_STRING))
67?????????break;
68?????}
69?
70?????printWriter.println("共:"?+?count?+?"?個");
71?
72?????System.out.println("共:"?+?count?+?"?個");
73?
74?????printWriter.close();
75?????fout.close();
76???}
77?}
78?