/
Вопросы и ответы
/
Java
/

Как заполнить массив в java с клавиатуры

Как заполнить массив в java с клавиатуры

5 лет назад

Человек-Молекула

Ответы

1

Для ввода массива с клавиатуры в Java можно использовать класс Scanner из стандартной библиотеки Java. Например, чтобы ввести массив целых чисел с клавиатуры, можно использовать следующий код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Введите длину массива: ");
        int length = scanner.nextInt();
        int[] array = new int[length];
        System.out.println("Введите элементы массива:");
        for (int i = 0; i < length; i++) {
            array[i] = scanner.nextInt();
        }
        System.out.println("Массив: " + Arrays.toString(array));
    }
}
  • В этом примере мы создали объект класса Scanner, который позволяет считывать данные из стандартного потока ввода (клавиатуры).
  • Затем мы запросили у пользователя длину массива и создали массив нужного размера.
  • После этого мы в цикле заполняем массив элементами, вводимыми с клавиатуры, с помощью метода nextInt() объекта Scanner.
  • Наконец, мы выводим полученный массив на экран с помощью метода toString() класса Arrays

Для ввода массива других типов данных нужно использовать соответствующие методы класса Scanner, например, nextDouble() для ввода массива вещественных чисел.

4 года назад

Иван Полежаев

0

Ввод с клавиатуры в Java читают классом Scanner. Сначала узнают размер массива, затем в цикле читают элементы:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.util.Arrays;
import java.util.Scanner;

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

        System.out.print("Сколько чисел? ");
        int n = scanner.nextInt();
        int[] numbers = new int[n];

        for (int i = 0; i < n; i++) {
            System.out.print("Число " + (i + 1) + ": ");
            numbers[i] = scanner.nextInt();
        }

        System.out.println(Arrays.toString(numbers));
    }
}

Arrays.toString() выводит массив в виде [3, 7, 1]. Обычный System.out.println(numbers) напечатает адрес объекта в памяти.

Все числа одной строкой

Пользователь вводит 3 7 1 и нажимает Enter:

1
2
3
4
5
String[] parts = scanner.nextLine().trim().split("\\s+");
int[] numbers = new int[parts.length];
for (int i = 0; i < parts.length; i++) {
    numbers[i] = Integer.parseInt(parts[i]);
}

То же через Stream API:

1
2
3
int[] numbers = Arrays.stream(scanner.nextLine().trim().split("\\s+"))
        .mapToInt(Integer::parseInt)
        .toArray();

Массив строк

1
2
3
4
String[] names = new String[3];
for (int i = 0; i < names.length; i++) {
    names[i] = scanner.nextLine();
}

Если перед этим вызывали nextInt(), первый nextLine() вернёт пустую строку: nextInt() не забирает перевод строки. Добавьте лишний scanner.nextLine() после nextInt().

Ввод не число

Если ввести букву, nextInt() выдаст InputMismatchException. Проверка перед чтением:

1
2
3
4
5
while (!scanner.hasNextInt()) {
    System.out.println("Введите целое число");
    scanner.next();
}
int value = scanner.nextInt();

Быстрый ввод больших данных

В олимпиадных задачах Scanner медленный. Используют BufferedReader:

1
2
3
4
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int[] numbers = Arrays.stream(reader.readLine().trim().split("\\s+"))
        .mapToInt(Integer::parseInt)
        .toArray();

Массивы и ввод данных разбирают в бесплатном курсе «Основы Java».

3 дня назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845