Δημοσιεύτηκε: 07 Ιουν 2010, 19:49
από mathpoet
Δεν μπορώ να δω όλο τον κώδικά σου, αλλά μπορώ να σου δώσω κάποιες κατευθύνσεις.

Καταρχήν όπως σου είπα και παραπάνω, η isProbablyCorrectPassword() θα σου γυρίσει true για περισσότερα από 1 strings. Έτσι είναι φτιαγμένη. Οπότε όταν σου γυρίσει true πρέπει ή να επιβεβαιώσεις ότι όντως είναι ο σωστός κωδικός και μετά να σταματήσεις το ψάξιμο, ή να εμφανίσεις το string ως πιθανό κωδικό και να συνεχίσεις το ψάξιμο μέχρι το τέλος για να σου φέρει και τους υπόλοιπους πιθανούς. Κάποιος κωδικός από αυτούς θα είναι ο σωστός.

Επίσης ρίξε μια ματιά στον παρακάτω κώδικα που παράγει όλα τα strings μέχρι ένα μέγεθος. Νομίζω ότι μπορείς πολύ εύκολα να τον προσαρμόσεις σε αυτό που θέλεις.

Κώδικας: Επιλογή όλων

private static char fCharList[] = {'a', 'b', 'c', 'd'};
private static final int maxLen = 3;

private static void generateStrings(StringBuffer sb) {
if (sb.length() < maxLen) {
for (int i = 0; i < fCharList.length; i++) {
sb.append(fCharList[i]);
System.out.println(sb);
generateStrings(sb);
sb.deleteCharAt(sb.length() - 1);
}
}
}

public static void main(String[] args) throws Exception {
generateStrings(new StringBuffer());
}