文字列”abcde”の中にある全てのsubstring
2007/06/25
java
雑記
多分。。。
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("==================");
}
}
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
==================
: