Генерация пароля и ввод не работает

Я попытался создать случайный пароль gen, а затем вам пришлось ввести случайный пароль, который должен быть точно таким же, но проблема в том, что он всегда скажет: пароли не совпадают. Таким образом, даже если совпадения совпадают, это все равно не работает... Если я обращаюсь к нему (Так что "если (! Scanner.equals(random)){") это говорит, что это работает, но это только инвертирует, так что это не странно XD Вот мой код:

import java.util.Random;
import java.util.Scanner;

class V20ControlPanel {
public static void main(String[] args) throws InterruptedException {


    Random random = new Random();

    final String alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    final int N = alphabet.length();
    for (int i = 0; i < 4; i++) {
        System.out.print(alphabet.charAt(random.nextInt(N)));

    }

    String s;

    Scanner scanner = new Scanner(System.in);
     s = scanner.nextLine();

    if (random.equals(scanner)) {
        System.out.println("You've succesfully logged in! With password: " +s);
    } else {
        System.out.println("The passwords didn't match, please try again.");


    }
}

}

1 ответ

Вы сравниваете Random возражать против Scanner объект, а не значения, которые вы хотите получить. Объявите локальную переменную для хранения того, каким должен быть пароль:

public static void main(String[] args) throws InterruptedException {

    Random random = new Random();

    final String alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    final int N = alphabet.length();
    String pass = ""; //The variable to hold the password
    for (int i = 0; i < 4; i++) {
        pass += alphabet.charAt(random.nextInt(N)); //Add to password
    }

    String s;

    Scanner scanner = new Scanner(System.in);
     s = scanner.nextLine();

    if (pass.equals(s)) { //Changed
        System.out.println("You've succesfully logged in! With password: " +s);
    } else {
        System.out.println("The passwords didn't match, please try again.");


    }
}

Это все еще довольно неэффективный код. Вы могли бы рассмотреть способы более эффективного генерирования случайного String,

Другие вопросы по тегам