String database[] = {'a', 'b', 'c'};
指定された に基づいて、次の文字列シーケンスを生成したいと思いますdatabase
。
a
b
c
aa
ab
ac
ba
bb
bc
ca
cb
cc
aaa
...
私はかなり「ダミー」のソリューションしか考えられません。
public class JavaApplication21 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
char[] database = {'a', 'b', 'c'};
String query = "a";
StringBuilder query_sb = new StringBuilder(query);
for (int a = 0; a < database.length; a++) {
query_sb.setCharAt(0, database[a]);
query = query_sb.toString();
System.out.println(query);
}
query = "aa";
query_sb = new StringBuilder(query);
for (int a = 0; a < database.length; a++) {
query_sb.setCharAt(0, database[a]);
for (int b = 0; b < database.length; b++) {
query_sb.setCharAt(1, database[b]);
query = query_sb.toString();
System.out.println(query);
}
}
query = "aaa";
query_sb = new StringBuilder(query);
for (int a = 0; a < database.length; a++) {
query_sb.setCharAt(0, database[a]);
for (int b = 0; b < database.length; b++) {
query_sb.setCharAt(1, database[b]);
for (int c = 0; c < database.length; c++) {
query_sb.setCharAt(2, database[c]);
query = query_sb.toString();
System.out.println(query);
}
}
}
}
}
解決策はかなりばかげています。という意味でスケーラブルではありません。
- のサイズを大きくするとどうなり
database
ますか? - 最終的に対象とする印刷文字列の長さを N にする必要がある場合はどうすればよいですか?
スケーラブルな順列と組み合わせ文字列を本当にスマートな方法で生成できるスマートなコードはありますか?