Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
 Аватар для KillerJo
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127

Введите N строк c консоли

18.01.2018, 21:16. Показов 4761. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Учусь кодить на java, но вот что то какой то "затык". Необходимо вводить строки (пробелы, цифры, символы, буквы и т.д.).
Собственно не могу понять почему с кодом ниже выводится сразу две строки(первая не ожидает консольного ввода).
Введите колличество строк и нажмите <ENTER>
3
Необходимо ввести 3 строк(у/и).
Введите строку №1
Введите строку №2
Помогите пожалуйста укажите что я делаю не правильно.

Сам код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Scanner sc = new Scanner(System.in);
        int n;
 
        System.out.println("Введите колличество строк и нажмите <ENTER>");
        if (sc.hasNextInt()) {
            n = sc.nextInt();
        } else {
            System.out.println("Ошибка! Необходимо ввести цифру.");
            return;
        }
 
        String[] str = new String[n];
        System.out.println("Необходимо ввести " + n + " строк(у/и).");
        for (int i = 0; i < n; i++) {
            System.out.println("Введите строку №" + (i + 1));
            str[i] = sc.nextLine();
//            str[i] = sc.next();  // ввод символов пока не встретится пробел
        }
 
        System.out.println("-------------------------");
        System.out.println("Введенные вами строки: ");
        for (String key : str) {
            System.out.println(key + " : " + key.length() + " символ(а/ов)");
        }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.01.2018, 21:16
Ответы с готовыми решениями:

С консоли вводится n строк, отсортировать по возрастанию длин строк
Ввести n строк с консоли. Отсортировать по возрастанию длин строк.

Введите n слов с консоли.Найти слово
Введите n слов с консоли.Найти слово,состоящее только из различных символов, если таких слов несколько, найти первое из них

Создайте в программном режиме компонент Memo, введите в него несколько строк текста и выведите данный текст в текстовый файл.
помогите решить) Создайте в программном режиме компонент Memo, введите в него несколько строк текста и выведите данный текст в текстовый...

4
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
18.01.2018, 21:38
Например после
Цитата Сообщение от KillerJo Посмотреть сообщение
System.out.println("Необходимо ввести " + n + " строк(у/и).");
напиши sc.nextLine();
Профит!
0
 Аватар для KillerJo
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127
18.01.2018, 21:45  [ТС]
iSmokeJC, а разница? Там же и так написано...
System.out.println("Введите строку №" + (i + 1));
str[i] = sc.nextLine();
Где str[i] индексированный массив строк, к которому потом можно обратиться.
Но ради эксперимента, попробовал, изменений не увидел.

Дело в том что если просто работать через str[i] = sc.next(); Все работает корректно, кроме одного. Нужны полные строки с учетом пробелов, то есть ждать нажатия <ввод>. А вот с методом который читает пробелы str[i] = sc.nextLine(); скачет сразу ко второй строке... почему так я не могу понять.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
18.01.2018, 21:54
KillerJo, разница есть. Ты точно написал просто sc.nextLine() ?
У тебя перед этим сканер читает число, а перевод строки оставляет на потом

Добавлено через 1 минуту
Java
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
import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n;
 
        System.out.println("Введите колличество строк и нажмите <ENTER>");
        if (sc.hasNextInt()) {
            n = sc.nextInt();
        } else {
            System.out.println("Ошибка! Необходимо ввести цифру.");
            return;
        }
 
        String[] str = new String[n];
        System.out.println("Необходимо ввести " + n + " строк(у/и).");
        sc.nextLine();
        for (int i = 0; i < n; i++) {
            System.out.println("Введите строку №" + (i + 1));
            str[i] = sc.nextLine();
//            str[i] = sc.next();  // ввод символов пока не встретится пробел
        }
 
        System.out.println("-------------------------");
        System.out.println("Введенные вами строки: ");
        for (String key : str) {
            System.out.println(key + " : " + key.length() + " символ(а/ов)");
        }
    }
}
Все работает
1
 Аватар для KillerJo
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127
18.01.2018, 21:57  [ТС]
iSmokeJC ...ясно я пробовал не там и не то
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.01.2018, 21:57
Помогаю со студенческими работами здесь

Ввести n строк с консоли. Создать массив строк. Упорядочить строки и вывести эти строки в порядке убывания длины.
Помогите решить и объяснить, где что. Сделать надо в Eclipse. Ввести n строк с консоли. Создать массив строк. Упорядочить строки...

Расстояние между строк в консоли
Добрый день. Гуглил и не нашёл ответа: можно ли как-то изменять расстояние между строками в консольном приложении? Картинка для...

Считывание длинных строк с консоли
Здравствуйте! Помогите с проблемой, пожалуйста. Считываю строку из консоли стороннего приложения (plink.exe) строки вот такой командой: ...

Читать несколько строк из консоли
необходимо прочитать все строки вставленного текста в консоль, readline не подходит по определению. Попробовал Console.Read() - не читает...

В консоли показываются только последние 25 строк
Доброго времени суток. При написании консольной программы на Pascal'е (с использованием модуля CRT) возникла такая проблема: Допустим,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
1С: Программный отбор элементов справочника Номенклатура по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника Сотрудники по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru