JavaRush
Акция
Университет
Java FullStack
Python FullStack
new
Web FullStack
new
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/почему выводит только 2 строки ?
Анна Ивашенцева
22 уровень
  • 16.01.2020
  • 455просмотров
  • 3комментариев

почему выводит только 2 строки ?

Вопрос по задаче Только по-очереди!
Java Core,  6 уровень,  13 лекция
Обсуждается


1. В классе Solution создать public static класс нити Read3Strings унаследовавшись от Thread.
2. В методе run реализовать чтение с консоли трех строк.
3. Три подряд введенных строки должны считываться в одной нити и объединяться в одну строку через пробел.
4. В методе main вывести результат для каждой нити.
5. Используй join.

Пример:

Входные данные:
a
b
c
d
e
f

Выходные данные:
a b c
d e f

Требования:
  • Объяви в классе Solution public static класс Read3Strings.
  • Класс Read3Strings должен быть унаследован от Thread.
  • Метод run класса Read3Strings должен считывать три строки.
  • Класс Read3Strings должен содержать публичный метод printResult.
  • Метод printResult должен выводить в консоль 3 считанные строки, разделив их пробелами.
  • Метод main должен вызывать методы start у созданных нитей.
  • Метод main должен вызывать методы join у созданных нитей.
  • Вывод программы должен отображать, что потоки считывали строки последовательно, а не параллельно.
package com.javarush.task.task16.task1629; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Solution { public static volatile BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); public static void main(String[] args) throws InterruptedException { Read3Strings t1 = new Read3Strings(); Read3Strings t2 = new Read3Strings(); t1.start(); t1.join(); t2.start(); t2.join(); //add your code here - добавьте код тут t1.printResult(); t2.printResult(); } //add your code here - добавьте код тут public static class Read3Strings extends Thread { String s = ""; @Override public void run() { try { for(int i = 0; i < 3; i++) { //if(reader.ready()) { s = reader.readLine() + " "; //} } } catch (Exception e) { } } public void printResult() { System.out.print(s); } } }
0
Комментарии (3)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Oleksandr
Уровень 41
17 января 2020, 13:37полезный
for(int i = 0; i < 3; i++) {
                //if(reader.ready()) {
                s = reader.readLine() + " ";
                //}
            }
Каждую итерацию перезаписивается Или плюсуйте к тому что есть или прочтите в 3 переменних и склейте их.
+1
Анна Ивашенцева
Уровень 22
22 января 2020, 08:48
спасибо )
0
Анна Ивашенцева
Уровень 22
16 января 2020, 13:36
и почему то он не выводит второй поток , только две строки из первого
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush