Домашнее задание, случайные строки и числа - PullRequest
0 голосов
/ 07 июля 2019

Идея состоит в том, чтобы создать имя пользователя 1 и имя пользователя 2, присвоить строковое значение name1, name2, а затем уникальные целые числа, например, 01,02 (соответственно.) а затем сравните значения.

Я написал столько кода, сколько понимаю.

        public static void main(String[] args) {
        Scanner usernameone = new Scanner(System.in);
        System.out.println("Enter Username");
        String username1 = usernameone.nextLine();

        int usernameNumber1;
        Scanner usernameNumberOne = new Scanner(System.in);
        System.out.println("Enter in your age.");
        usernameNumber1 = usernameNumberOne.nextInt();

        Scanner usernametwo = new Scanner(System.in);
        System.out.println("Enter Username");
        String username2 = usernametwo.nextLine();

        int usernameNumber2;
        Scanner usernameNumberTwo = new Scanner(System.in);
        System.out.println("Enter in your age.");
        usernameNumber2 = usernameNumberTwo.nextInt();

        if (username1 <= 0) { // Generate random string for name.
        }
        if (usernameNumber1 <= 0) { // Generate random int for number.     
        }
        if (username2 <= 0) { // Generate random string for name.
        }
        if (usernameNumber2 <= 0) { // Generate random int for number.     
        }
        if (username1 == username2) {
            System.out.println("Username 1 and 2 are same.");
        }
        if (usernameNumber1 == usernameNumber2) {
            System.out.println("Usernumber 1 and 2 are same.");
        }

Я застрял, если пользователь не вводит число в name 1 или name2 или int 01,02. Предполагается, что программа случайным образом генерирует число для этих переменных.

//Then I must compare them. 
 //Name 1 == Name 2? 
 //Number 1 == number2? 
 //Name 1 & Number 1 == Name 2 & Number2.

1 Ответ

0 голосов
/ 07 июля 2019

Вы можете узнать о случайном классе здесь и как сравнивать строки здесь

Вы сказали, что если пользователь не будет вводить что-то, вы должны сгенерировать это.

Итак, весь этот код неверен:

if (username1 <= 0) { // Generate random string for name. // Checking for null strings you check with the null keyword, not 0
}
if (usernameNumber1 <= 0) { // Generate random int for number.
}
if (username2 <= 0) { // Generate random string for name. // and here
}
if (usernameNumber2 <= 0) { // Generate random int for number.
}
if (username1 == username2) { // Wrong String comparing
    System.out.println("Username 1 and 2 are same.");
    }
if (usernameNumber1 == usernameNumber2) {
    System.out.println("Usernumber 1 and 2 are same.");
}

Что вы должны сделать: проверить, являются ли переменные нулевыми и генерируют ли они случайное значение для них

static String genRandomString() { // A helpful method
    Random r = new Random();
    String randomString = "";
    int size = r.nextInt(7) + 3; // 3 is the minimum size and 10 (7 + 3) is the maximum size for the strings
    char[] alphabet = {'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'}; // available characters for the string
    for (int i = 0; i < size; i++) {
        randomString += alphabet[r.nextInt(alphabet.length - 1)]; // get random char
    }
    return randomString;
}

// after inputs
Random r = new Random();
if (username1.length() == 0) // check if the string's size equals 0
    username1 = genRandomString();
if (username2.length() == 0)
    username2 = genRandomString();
if (usernameNumber1 == 0)
    usernameNumber1 = r.nextInt(50) + 10; // get a random age from 10 to 60
if (usernameNumber2 == 0)
    usernameNumber2 = r.nextInt(50) + 10; // get a random age from 10 to 60
// now check if the usernames are same
if (username1.equals(username2))
    System.out.println("Username 1 and 2 are same.");
// check for ages
if (usernameNumber1 == usernameNumber2)
    System.out.println("Usernumber 1 and 2 are same.");
...