Набор размеров массива строк с учетом пользовательского ввода

#java #arrays #loops #input #java.util.scanner

#java #массивы #циклы #ввод #java.util.scanner

Вопрос:

Я написал некоторый код. Идея состоит в том, чтобы спросить пользователя, сколько имен он хочет ввести, получить входные данные и соответствующим образом установить размер массива строк. Мне удалось доработать код, кроме настройки размера массива. Когда я пытаюсь сделать что-то вроде этого:

 import java.util.Scanner;
public class StringArray {
    public static void main(String[] args) {
        Scanner read = new Scanner(System.in);

        System.out.println("How many names do you wish to enter?");
        int numOfNames = read.nextInt();

        String [] names = new String[numOfNames];
  

Я получаю сообщение об ошибке, в котором строка не может быть преобразована в int.
Я пробовал вещи, которые я нашел в Интернете, например, пытаться преобразовать int в string и т. Д., Но Не сработало.
Мой исходный код здесь:

 import java.util.Scanner;

public class ArrayDemoS {
    public static void main(String[] args) {
        Scanner read = new Scanner(System.in);

       System.out.println("How many names do you wish to enter?");
       int numOfNames = read.nextInt();

       String [] names = new String[6];

       System.out.println("Enter the names.");
       int items = 0;

       do {
           names[items] = read.nextLine();
       } while (   items <= numOfNames);

       System.out.println("You entered the following names");

       for ( int i = 0; i <= numOfNames; i  ) {
          System.out.print(names[i]   " ");
       }

       System.out.println();
    }
}
  

Я установил размер равным 6, предполагая, что пользователь введет 5 имен.
Могут быть другие способы сделать это с помощью ArrayList и т. Д., Но я еще не узнал о них. Я могу выполнить ту же задачу, когда массив сформирован из данных типа int. Я хотел бы иметь возможность делать это и для строкового типа. Заранее спасибо 🙂

Комментарии:

1. предоставьте свой образец ввода и полные сведения об ошибке

2. Ваш полный пример кода не выдает никаких ошибок. Пожалуйста, предоставьте пример кода вместе с полным сообщением об ошибке (включая указанный номер строки).

Ответ №1:

Это работает нормально.

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

   System.out.println("How many names do you wish to enter?");
   int numOfNames = read.nextInt();

   String [] names = new String[numOfNames];

   System.out.println("Enter the names.");
   int items = 0;
   names[items] = read.nextLine();
   while ( items < numOfNames)
   {
       names[items] = read.nextLine();
       items  ;
   }

   System.out.println("You entered the following names");

   for ( int i = 0; i < numOfNames; i  ) {
      System.out.print(names[i]   " ");
   }

   System.out.println();
}