С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 20.03.2021
Сообщений: 8

Упражнение, Напишите программу которая считывает строки

26.05.2023, 18:22. Показов 1647. Ответов 8

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста с программой((
Напишите программу, которая считывает строки, вводимые пользователем, ввод закончить, если введена строка "quit". Данные
вводить с помощью класса Scanner, для исключения неправильного ввода, использовать механизм обработки исключений try/catch
Буду благодарна!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.05.2023, 18:22
Ответы с готовыми решениями:

Напишите программу, которая считывает последовательность целых чисел
Напишите программу, которая считывает последовательность целых чисел и выводит true, если последовательность упорядочена (в порядке...

Напишите программу, которая считывает натуральное число n и записывает на консоли симметричный «крест», состоящий из зве
Напишите программу, которая считывает натуральное число n и записывает на консоли симметричный «крест», состоящий из звездочек: каждая...

Напишите программу, которая считывает строку и выводит на экран новую строку, в которой удалены все повторяющиеся рядом
Напишите программу, которая считывает строку и выводит на экран новую строку, в которой удалены все повторяющиеся рядом стоящие символы ...

8
 Аватар для DOKTOP_JIEKTEP
75 / 64 / 25
Регистрация: 22.04.2017
Сообщений: 418
26.05.2023, 20:13
Цитата Сообщение от Katenocheq Посмотреть сообщение
для исключения неправильного ввода
что подразумевается под неправильным вводом?

Добавлено через 9 минут
Вот один из вариантов. Только не представляю какое исключение может возникнуть при вводе. Более опытные подскажут.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
 
        String value = "";
 
        try {
            while (true) {
                System.out.print(">> ");
                value = in.nextLine();
                if (value.equals("quit")) {
                    break;
                }
                System.out.println("output: " + value);
            }
        } catch (Exception e) {
            System.out.println("Input error!");
        }
        System.out.println("Program is completed.");
    }
}
1
0 / 0 / 0
Регистрация: 20.03.2021
Сообщений: 8
26.05.2023, 20:40  [ТС]
}[/quote]
Цитата Сообщение от DOKTOP_JIEKTEP Посмотреть сообщение
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
String value = "";
try {
            while (true) {
                System.out.print(">> ");
                value = in.next();
                if (value.equals("quit")) {
                    break;
                }
                System.out.println("output: " + value);
            }
        } catch (Exception e) {
            System.out.println("Input error!");
        }
        System.out.println("Program is completed.");
    }
}
Здравствуйте, спасибо за код! Тоже не поняла, что является исключением программы, либо задание корявое, либо действительно можно додуматься до чего-то...
0
 Аватар для Coffeini
753 / 370 / 133
Регистрация: 01.02.2020
Сообщений: 1,096
Записей в блоге: 1
26.05.2023, 20:59
Цитата Сообщение от DOKTOP_JIEKTEP Посмотреть сообщение
Только не представляю какое исключение может возникнуть при вводе.
Тут написаны же...
2
 Аватар для proger979
29 / 21 / 9
Регистрация: 13.08.2019
Сообщений: 89
26.05.2023, 21:11
Вариант с возможными Exception

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
package edu.forumtasks;
 
import java.util.Scanner;
import java.util.NoSuchElementException;
 
public class StringReader {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        try {
            while (true) {
                System.out.println("Введите строку (quit для завершения):");
                String input = null;
                try {
                    input = scanner.nextLine();
                } catch (NoSuchElementException e) {
                    System.out.println("Ошибка ввода: " + e.getMessage());
                    break;
                }
                if (input.equals("quit")) {
                    break;
                }
            }
        } catch (Exception e) {
            System.out.println("Ошибка ввода: " + e.getMessage());
        } finally {
            scanner.close();
        }
    }
}
1
0 / 0 / 0
Регистрация: 20.03.2021
Сообщений: 8
26.05.2023, 21:40  [ТС]
Здравствуйте, спасибо за ответ! Простите за глупый вопрос, но как можно вызвать эту ошибку? Чтобы появилась строка "Ошибка ввода:"
0
 Аватар для proger979
29 / 21 / 9
Регистрация: 13.08.2019
Сообщений: 89
26.05.2023, 21:44
Например, если в поле ввода нажать Ctrl+D, ввести пустую строку или закрыть консоль.
ПМСМ
public String nextLine()
Advances this scanner past the current line and returns the input that was skipped. This method returns the rest of the current line, excluding any line separator at the end. The position is set to the beginning of the next line.
Since this method continues to search through the input looking for a line separator, it may buffer all of the input searching for the line to skip if no line separators are present.

Returns:
the line that was skipped
Throws:
NoSuchElementException - if no line was found
IllegalStateException - if this scanner is closed
1
0 / 0 / 0
Регистрация: 20.03.2021
Сообщений: 8
26.05.2023, 22:47  [ТС]
Извините за ещё более глупый вопрос, пустую строку как вводить? Пробовала enter нажимать, но он просто перескакивает и пишет заново "Введите строку..."
0
 Аватар для proger979
29 / 21 / 9
Регистрация: 13.08.2019
Сообщений: 89
27.05.2023, 12:08
Лучший ответ Сообщение было отмечено Katenocheq как решение

Решение

в этой программе - никак.
NoSuchElementException - возникает если scanner не находит следующую строку в потоке ввода.
Класс Scanner - может читать данные, не только из консоли, но и из файлов, из URL, из буфера обмена, например...
ПМСМ - задача с Exception для консольного ввода - не совсем корректна.

Добавлено через 1 час 20 минут
Хотя есть вариант и с консолью

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.util.Scanner;
 
public class ScannerExample {
 
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
 
    System.out.print("Введите целое число: ");
    int number = scanner.nextInt();
    System.out.println("Вы ввели число: " + number);
 
    System.out.print("Введите строку: ");
    String line = scanner.nextLine(); // Может быть выброшено исключение NoSuchElementException
    System.out.println("Вы ввели строку: " + line);
 
    scanner.close();
  }
}
Сначала нужно ввести целое число, затем строку.
После ввода целого числа нужно подтвердить ввод, Enter-ом чтобы перейти к следующей строке.
Это оставляет символ новой строки в буфере ввода, который scanner.nextLine() может прочитать при попытке считывания следующей строки.
Если просто клацнуть Enter без ввода дополнительной строки, Scanner может выбросить исключение NoSuchElementException в этом месте.

Как исправить?
Добавить дополнительный вызов scanner.nextLine() после считывания целого числа, чтобы очистить символ новой строки из буфера ввода.
А ещё правильнее, использовать Scanner.skip("\n")

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.Scanner;
 
public class ScannerExampleFixed {
 
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
 
    System.out.print("Введите целое число: ");
    int number = scanner.nextInt();
    System.out.println("Вы ввели число: " + number);
 
    scanner.nextLine(); // добавляем эту строку, чтобы очистить символ новой строки из буфера ввода
 
    System.out.print("Введите строку: ");
    String line = scanner.nextLine();
    System.out.println("Вы ввели строку: " + line);
 
    scanner.close();
  }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.05.2023, 12:08
Помогаю со студенческими работами здесь

Напишите программу, которая считывает строку и выводит на экран новую строку, в которой удалены все повторяющиеся рядом
Подскажите пожалуйста я и задачу не совсем понял, как его сделать у кого есть идеи или код, напишите пожалуйста буду благодарен ...

Напишите программу, которая считывает из аргументов командной строки массив слов
Напишите программу, которая считывает из аргументов командной строки массив слов и сортирует этот массив по двум критериям. Программа...

Напишите программу, которая считывает трехзначное число и разворачивает его
Мой код: val scan = java.util.Scanner(System.`in`) fun main(args: Array<String>){ var s = scan.nextInt() ...

Напишите программу, которая считывает целое число и выводит текст
Задание: Напишите программу, которая считывает целое число и выводит текст, аналогичный приведенному в примере. входные данные 179 ...

Напишите программу, которая считывает целое число и умножает его на 10, а затем выводит в консоль
Прохожу курс на степике, ввожу свой код, который будет ниже, выдает ошибку. Поправьте пожалуйста в чем ошибка val scan =...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru