編輯注意:我沒有很清楚。我試圖從一個單一的字符猜測開始,比如0到00到000 ...一直到zzzzzz。基本上,所有可能的迭代從0到zzzzzz。對不起,我不是很清楚!增加一個字符串/字符數組
我目前正在嘗試循環訪問一組字符。該數組包含0-9和a-z(小寫)。誠然,這是作業 - 我是一個無用的編碼器(請參閱前一篇文章),我可以做一些幫助。
我要的是通過字符數組的所有可能的結果進行迭代,並列出結果...
aaa aba
aab > through to > aca
aac ada
如果只是基於信我讀過,我可以將它基於base26數字系統,但這包括數字。
到目前爲止,我已設法循環訪問數組,在循環訪問下一個位置之前將答案分配給「猜測」數組。之後,我很難過。
任何建議,作爲最後一次,非常感謝。這項工作基於Brute Force,但如果我的真實目的是非法的,那麼我可以使用大量的工作示例,但事實並非如此。
這是我到目前爲止。
/**
*
* @author Aaron
*/
public class Test {
/**
* @param args the command line arguments
*/
int current = 0;
char[] guess = new char[6];
public static void main(String[] args) {
Test test = new Test();
int maxLength = 6;
char c = '0';
while (maxLength != 0) {
maxLength--;
test.iterateAll(c);
test.increment(c);
}
}
public void iterateAll(char c) {
char[] charset = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
'u', 'v', 'w', 'x', 'y', 'z'};
for (int i = 0; i < charset.length; i++) {
//c = charset[i];
guess[current] = charset[i];
System.out.println(guess);
}
}
public void increment(char c) {
current++;
}
}
你的想法使用基地26是好的,事實上,你也有數字只是意味着你應該去基地36代替。 FauxFaux的答案似乎使用了這個事實。 – ARRG 2012-03-08 23:39:49