文字列”abcde”の中にある全てのsubstring 2007/06/25

多分。。。
15組だと思う。

abcdeという指定がないなら、
重なっている組み合わせは除外しないといけないような。

package t;

public class Test2 {

public static void main(String[] args) {
int c = 5;
StringBuilder builder = new StringBuilder();
for (int i = 0; i < c; i++) {
p(new String(builder.append((char) (65 + i))));
}

// String s = "abcde";
// p(s);
}

public static void p(String s) {
int len = s.length();
int cnt = 0;

for (int i = 0; i < len; i++) {
String tmp = s.substring(i);
for (int j = 1; j <= tmp.length(); j++) {
System.out.println(tmp.substring(0, j));
cnt++;
}
}
System.out.println("cnt:"+cnt);
System.out.println("==================");
}
}



A
cnt:1
==================
A
AB
B
cnt:3
==================
A
AB
ABC
B
BC
C
cnt:6
==================
A
AB
ABC
ABCD
B
BC
BCD
C
CD
D
cnt:10
==================
A
AB
ABC
ABCD
ABCDE
B
BC
BCD
BCDE
C
CD
CDE
D
DE
E
cnt:15
==================

: