Δημοσιεύτηκε: 07 Ιουν 2010, 19:49
Δεν μπορώ να δω όλο τον κώδικά σου, αλλά μπορώ να σου δώσω κάποιες κατευθύνσεις.
Καταρχήν όπως σου είπα και παραπάνω, η isProbablyCorrectPassword() θα σου γυρίσει true για περισσότερα από 1 strings. Έτσι είναι φτιαγμένη. Οπότε όταν σου γυρίσει true πρέπει ή να επιβεβαιώσεις ότι όντως είναι ο σωστός κωδικός και μετά να σταματήσεις το ψάξιμο, ή να εμφανίσεις το string ως πιθανό κωδικό και να συνεχίσεις το ψάξιμο μέχρι το τέλος για να σου φέρει και τους υπόλοιπους πιθανούς. Κάποιος κωδικός από αυτούς θα είναι ο σωστός.
Επίσης ρίξε μια ματιά στον παρακάτω κώδικα που παράγει όλα τα strings μέχρι ένα μέγεθος. Νομίζω ότι μπορείς πολύ εύκολα να τον προσαρμόσεις σε αυτό που θέλεις.
Καταρχήν όπως σου είπα και παραπάνω, η 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());
}