Заполнение массива элементами, которые вводит пользователь с консоли
Возникла следующая проблема. Пользователь вводит буквы, и программа должна считать их с консоли в символьный массив. Подскажите пожалуйста как это можно реализовать? Есть ли какой-то специальный метод, с помощью которого это можно сделать? Находила решения похожих задач, но с числами, а как это можно сделать с символами?
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Вывести все элементы массива, которые больше того элемента, индекс которого вводит пользователь
Вывести все элементы массива, которые больше того элемента, индекс которого вводит пользователь.
Пользователь вводит путь к папке и маску файлов. Также пользователь вводит имя результирующего файла
Пользователь вводит путь к папке и маску файлов. Также пользователь вводит имя результирующего.

Подскажите, как реализовать проверку того, что пользователь с консоли вводит ИМЕННО предложение, то есть, если
Подскажите, как реализовать проверку того, что пользователь с консоли вводит ИМЕННО предложение, то.
YII: на почту не приходят данные, которые вводит пользователь
Есть сайт интернет магазин, когда человек заказывает товар то на почту не приходят данные которые.
![]()
3638 / 2970 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
Так же как с числами, только с символами
Регистрация: 16.02.2015
Сообщений: 27
Можете привести пример с символьным массивом?
64 / 64 / 26
Регистрация: 07.01.2016
Сообщений: 374
1 2 3 4 5 6 7 8 9 10 11 12 13 14
Scanner sc = new Scanner(System.in); char []arr = new char [10]; // размер сам укажешь какой нужно // если вводить буквы по очереди public void setChar() { for (int i = 0; i arr.length; i++) { arr[i] = sc.next().charAt(0); } } //если вводить слово public void sethar2() { arr = sc.next().toCharArray(); }
706 / 385 / 64
Регистрация: 22.12.2013
Сообщений: 2,220
Записей в блоге: 19
Сообщение от java14 
Можете привести пример с символьным массивом?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
/* [url]https://www.cyberforum.ru/java-j2se/thread1942092.html[/url] */ package MyTests; import java.util.Scanner; /** * */ public class CharIn { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("Введите имя: "); String name = in.nextLine(); char[] chars = name.toCharArray(); // преобразовать имя в символьный массив System.out.print("Введите возраст: "); int age = in.nextInt(); System.out.println("Ваше имя: " + name + " Ваш возраст: " + age); } }
Регистрация: 12.01.2014
Сообщений: 62
Сообщение от java14 
пример с символьным массивом
Тоже самое, что сделал DavidKarchikyan, но по-своему
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
package vvod_simv_iz_konsoli_i_soxranen_v.massiv; import java.util.Scanner; /** * * @author Администратор */ public class Vvod_simv_iz_konsoli_i_soxranen_vMassiv { static void show(char[] b){ System.out.println("Введенные символы"); int count = 0; for (int i = 0; i b.length; i++){ System.out.print(b[i]+ " "); count++; if (count == 3){ System.out.println(); count = 0; } } } public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("Введите кол-во элементов массива "); int n = in.nextInt(); in.nextLine();//этот метод читает все что осталось в потоке ввода char a[] = new char[n]; System.out.println("Введите символы"); for (int i = 0; i a.length; i++){ a[i] = in.next().charAt(0); System.out.println("a["+ i + "] = " + a[i]); } show(a); } }
Примеры использования массивов
Думаю, настало время переходить к практическим задачам. И начнем мы с нескольких самых простых:
int[] array = new int[10]; for (int i = 0; i < 10; i++) < array[i] = i; >
- Создаем объект-массив на 10 элементов
- Цикл от 0 до 9 включительно
- В ячейки заносим значения от 0 до 9
int[] array = new int[10]; for (int i = 0; i < 10; i++) < array[i] = i + 1; >
- Создаем объект-массив на 10 элементов
- Цикл от 0 до 9 включительно
- В ячейки заносим значения от 1 до 10
int[] array = new int[10]; for (int i = 0; i < 10; i++) < array[i] = 10 - i; >
- Создаем объект-массив на 10 элементов
- Цикл от 0 до 9 включительно
- В ячейки заносим значения от 10 до 1
2. Вывод чисел в обратном порядке
А теперь перейдем к примерам посложнее и поинтереснее. И начнем мы с такой задачи: нужно ввести с клавиатуры 10 чисел и вывести их в обратном порядке.
Как вводить числа с клавиатуры мы знаем. А как ввести 10 чисел? Можно, конечно же, создать 10 переменных: а1 , а2 , и т.д. Но, во-первых, это неудобно. Во-вторых, если нужно будет ввести 100 чисел, мы будем создавать 100 переменных? Ну и в-третьих, мы же только что выучили массивы, которые просто созданы для хранения большого количества значений.
Код для ввода 10 значений будет выглядеть примерно так (приводим только код внутри метода main ):
Scanner console = new Scanner(System.in); int[] array = new int[10]; for (int i = 0; i < 10; i++) < array[i] = console.nextInt(); >
- Создаем объект Scanner
- Создаем объект-массив на 10 элементов
- Цикл от 0 до 9 включительно
- Читаем число с клавиатуры и сохраняем его в очередную ячейку массива
А как же вывести значения массива в обратном порядке?
Для этого нам понадобится еще один цикл, где i будет принимать значения от 9 до 0 (не забываем, что индексы массива нумеруются с 0). Финальный код программы будет выглядеть примерно так:
Scanner console = new Scanner(System.in); int[] array = new int[10]; for (int i = 0; i < 10; i++) < array[i] = console.nextInt(); > for (int i = 9; i >= 0; i--) < System.out.println(array[i]); >
- Создаем объект Scanner
- Создаем объект-массив на 10 элементов
- Цикл от 0 до 9 включительно
- Читаем число с клавиатуры и сохраняем его в очередную ячейку массива
- Цикл от 9 до 0 включительно
- Выводим на экран очередную ячейку массива
6. Массивы (Java. Базовый курс)

На данном уроке разберём что такое массивы, какие виды массивов бывают и как их использовать при разработке программ на Java.
Массивы
Часто на практике приходится работать с целыми наборами данных. Например для календаря нам нужен список названий месяцев, но как его хранить? Создавать 12 переменных и писать большое количество кода для работы с этими переменными? Это плохое решение, оно громоздкое, запутанное и неудобное. К счастью в языке Java есть отличная альтернатива — массивы.
Массив позволяет хранить целый набор данных определённого типа. По большому счёту массив можно представить себе как пронумерованный список или в более сложном случае — таблица. Массивы очень широко используются в приложениях и очень сильно упрощают обработку информации.
Одномерный массив
Одномерный массив представляет собой список однотипных элементов. На рисунке ниже приведён пример одномерного массива из 8 элементов:

В данном примере в качестве элементов массива выступают различные числа. Кроме этого, каждой ячейке массива соответствует свой индекс, по которому можно получить значение, записанное в ячейку. Обратите внимание что нумерация элементов массива начинается с нуля, это очень важный момент!
Общая форма объявления массива выглядит так:
тип_данных[] имя_массива = new тип_данных[размер_массива];
Напишем простую программу, которая по номеру месяца будет выводить его название:

В строке 8 инициализируется массив строк months размером в 12 элементов — ровно столько нам нужно для хранения всех названий месяцев:
String[] months = new String[12];
В строках с 9 по 20 в каждый элемент массива months записывается название месяца. Обращение к элементу идёт по его индексу в квадратных скобках — таким образом мы можем как записать данные в ячейку, так и прочитать. Важный момент — первый элемент имеет индекс 0, как я уже писал выше.
months[0] = "январь"; months[1] = "февраль"; months[2] = "март"; months[3] = "апрель"; months[4] = "май"; months[5] = "июнь"; months[6] = "июль"; months[7] = "август"; months[8] = "сентябрь"; months[9] = "октябрь"; months[10] = "ноябрь"; months[11] = "декабрь";
После того как массив заполнен элементами, программа просит пользователя ввести номер месяца и сохраняет его в переменную number:
Scanner input = new Scanner(System.in); System.out.println("Введите номер месяца:"); int number = input.nextInt();
Далее в строке 26 программа выводит в консоль название месяца, которое достаёт из массива по индексу. Так как нумерация индексов идёт с нуля, то мы должны из number вычесть единицу, чтобы получить правильное название месяца. Например 5 месяц в году это май, но в массиве значение “май” хранится в элементе с индексом 4, поэтому когда пользователь введёт номер 5, мы должны вычесть из него 1 и получим 4:
System.out.println(months[number-1]);
В данном случае я не сделал проверку на корректность ввода данных, поэтому если пользователь введёт неправильное число, например 100, то приложение выдаст ошибку ArrayIndexOutOfBoundsException. Это значит что была попытка обратиться к несуществующему элементу массива.
Полный листинг программы:
package ru.akutepov.example1; import java.util.Scanner; public class MonthByNumber < public static void main(String[] args) < String[] months = new String[12]; months[0] = "январь"; months[1] = "февраль"; months[2] = "март"; months[3] = "апрель"; months[4] = "май"; months[5] = "июнь"; months[6] = "июль"; months[7] = "август"; months[8] = "сентябрь"; months[9] = "октябрь"; months[10] = "ноябрь"; months[11] = "декабрь"; Scanner input = new Scanner(System.in); System.out.println("Введите номер месяца:"); int number = input.nextInt(); System.out.println(months[number-1]); >>
Данный пример выглядит довольно громоздко, но есть способ его упростить. Познакомимся с ещё одной формой инициализации массива в Java:
тип_данных[] имя_массива = ;
Эта форма позволяет заполнять массив значениями сразу во время его инициализации, что сокращает количество кода.
Перепишем программу и посмотрим что получится:

Так гораздо лучше — код уже не выглядит таким громоздким, при этом логика осталась та же самая. В зависимости от ситуации можно использовать любую из форм инициализации массива.
Полный листинг программы:
package ru.akutepov.example2; import java.util.Scanner; public class MonthByNumber < public static void main(String[] args) < String[] months = ; Scanner input = new Scanner(System.in); System.out.println("Введите номер месяца:"); int number = input.nextInt(); System.out.println(months[number - 1]); > >
Пример работы полученной программы:

Эту программу можно было бы написать без использования массива, например делать проверку номера месяца через оператор switch и выводить соответсвующее название. При этом решение с оператором switch тоже было бы вполне рабочим, но не таким красивым. Из этого следует вывод, что любую задачу можно решить несколькими способами и программист должен уметь выбрать оптимальное решение.
Многомерные массивы
В языке Java многомерные массивы представляют собой массивы массивов. Самый распространённый вид многомерных массивов — двумерные массивы.
Рассмотрим пример объявления такого массива:
int[][] a = new int[5][5];
В данном примере был проинициализирован двумерный массив a размером 5 на 5, который можно представить ввиде таблицы:
AlexWain / ArrayRandom.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
| package com . example . alexwilkinson . myapplication ; |
| import java . util . Random ; |
| /** |
| * Created by AlexWilkinson on 18.12.2017. |
| * Заполнить массив длинной 10 случайными неповторяющимися числами и вывести их в консоль |
| */ |
| public class ArrayRandom |
| public static void main ( String [] args ) |
| int i , j , arraySize = 10 , randomSize = 10 ; |
| Random newRandom = new Random (); |
| int [] array1 = new int [ arraySize ]; |
| for ( i = 0 ; i < array1 . length ; ) |
| int randomNumber = newRandom . nextInt ( randomSize ) + 1 ; |
| for ( j = 0 ; j < i ; j ++) |
| if ( array1 [ j ] == randomNumber ) |
| break ; |
| > |
| > |
| if ( j == i ) |
| array1 [ i ] = randomNumber ; |
| System . out . print ( array1 [ i ] + » » ); |
| i ++; |
| > |
| > |
| > |
| > |
