Первый элемент массива String с печатью null - PullRequest
0 голосов
/ 09 марта 2020

Первый элемент печати строкового массива null. Пожалуйста, объясните, почему не печатается первый элемент массива строк.

public static void main(String[] args) throws Exception {
    Scanner s = new Scanner(System.in);

    String[] array = new String[aa];
    System.out.println("Please enter 20 names to sort");
    for (int i = 0; i < array.length; i++) {
        array[i] = s.nextLine();
    }
    System.out.println(array[0]);

}

1 Ответ

1 голос
/ 09 марта 2020

Проблема в том, что вы не даете правильное целое число при построении массива String. Вместо aa у вас должен быть номер. Поскольку вы запрашиваете 20 имен, вы должны объявить массив размером 20.

Редактировать: Предполагая, что aa - ввод пользователя, вам просто нужно использовать следующую строку после чтения. Обратите внимание, что это также происходит при использовании nextDouble со сканером.

public static void main(String[] args) throws Exception 
{
    Scanner s = new Scanner(System.in);
    System.out.println("How many names would you like to enter?");
    int aa = s.nextInt();
    //must include since nextInt leaves the new line
    s.nextLine();
    String[] array = new String[aa];
    System.out.println("Please enter " + aa + " names to sort");
    for (int i = 0; i < array.length; i++) 
    {
        array[i] = s.nextLine();
    }
    System.out.println(array[0]);

}

Также обратите внимание, что массив не сортируется сам! Вам придется реализовать это позже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...