Проблема с массивом Java.сделать его определенного размера и позволить пользователю вводить данные в массив - PullRequest
0 голосов
/ 14 октября 2018

У меня было задание для школы, но я застрял и мог использовать некоторые советы.

Назначение - мне нужно создать массив и позволить пользователю помещать данные в массив с помощью сканера ицикл.Если пользователь помещает в сканер пустую строку, сканер должен остановиться и распечатать массив.Кроме того, массив не может быть длиннее длины 25.

public class invoerOpslaan {
public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    String[] arrayList = new String[25];
    String input;
    int i = 0;

    for (input = scanner.nextLine(); !input.isEmpty(); input = scanner.nextLine()) {
        arrayList[i] = input;
        i++;
    }
    System.out.println(arrayList[]);
}

У меня установлен массив длиной 25, но как я могу сделать так, чтобы пользователь вставил в массив 15 строк, что массив будет15 вместо 25. И если пользователь поместит 25-ю строку в массив, он автоматически остановит сканер и распечатает массив.

Ответы [ 3 ]

0 голосов
/ 14 октября 2018

Если вы не можете использовать List, вы можете использовать Arrays.copyOf() и i, чтобы скопировать столько элементов, сколько пользователь ввел в новый Array.Кроме того, вы на самом деле не проверяете, чтобы убедиться, что i меньше 25. Убедитесь, что вы отметили в цикле:

for (input = scanner.nextLine(); !input.isEmpty() && i < 25; input = scanner.nextLine()) {
    arrayList[i] = input;
    i++;
}
String[] temp = Arrays.copyOf(arrayList, i);
System.out.println(Arrays.toString(temp));
0 голосов
/ 14 октября 2018

Если вам не разрешено использовать List, выполните цикл по каждому элементу, который содержит значение в массиве, и создайте новый массив (размером i), используя все эти элементы.

    Scanner scanner = new Scanner(System.in);
    String[] arrayList = new String[25];
    String input;
    int i = 0;

    for (input = scanner.nextLine(); (!input.isEmpty() && i < 25); input = scanner.nextLine()) {
        arrayList[i] = input;
        i++;
    }

    String[] newArrayList = new String[i];

    int index = 0;
    for (String element : arrayList) {
        if (element == null)
            continue;
        newArrayList[index] = element;
        index++;
    }
0 голосов
/ 14 октября 2018

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

Scanner scanner = new Scanner(System.in);
ArrayList<String> arrayList = new ArrayList<>();
String input;
int i = 0;
for (input = scanner.nextLine(); !input.isEmpty(); input = scanner.nextLine()) {
    arrayList.add(input);
    i++;
}
System.out.println(arrayList);

И System.out.println даст вам следующий вывод:

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