Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Java > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 06.05.2019, 13:43   #1
Алексей9912
Пользователь
 
Регистрация: 30.09.2018
Сообщений: 30
Репутация: 10
По умолчанию Считывание сканером

Здравствуйте! Возникла такая проблема. Допустим, есть сканер.
Считываем nextInt()
Считываем nextLine()

Проблема в том, что после того, как считали целое число, сканер по идее считывает пустую строку (и, соответственно, выбрасывается исключение). ну, в первой строке после числа ничего же нет. а мне нужно считывать новую строку. подскажите, пожалуйста, почему так происходит (может я неправ), и как это можно исправить (конечно, можно заменить nextLine() next()'ом, но все же)

Код:
	System.out.print("input some number: ");
				
	int i = in.nextInt();
				
	System.out.print("input filler: ");
				
	char c = in.nextLine().charAt(0);
				
	String result = String.format("|%10d|", i).replace(' ', c);
				
	System.out.println();
	System.out.println(result);
вот часть кода
Алексей9912 вне форума   Ответить с цитированием
Старый 06.05.2019, 13:47   #2
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,908
Репутация: 2668
По умолчанию

Цитата:
Сообщение от Алексей9912 Посмотреть сообщение
и, соответственно, выбрасывается исключение
Нет, он не выбрасывает. Выбрасывает charAt, когда вы из пустой строки хотите взять символ.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 06.05.2019, 14:07   #3
Алексей9912
Пользователь
 
Регистрация: 30.09.2018
Сообщений: 30
Репутация: 10
По умолчанию

да, я знаю, что исключение из-за charAt. это не важно
хотелось бы услышать что-нибудь насчет возможного решения этой проблемы
Алексей9912 вне форума   Ответить с цитированием
Старый 06.05.2019, 14:20   #4
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 26,100
Репутация: 5675
По умолчанию

нужно читать, пока пустая строка?
что-то такое?
Код:
String line = null;
while((line = in.nextLine()).isEmpty()) {
}
или просто if используйте.
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 06.05.2019, 14:30   #5
Алексей9912
Пользователь
 
Регистрация: 30.09.2018
Сообщений: 30
Репутация: 10
По умолчанию

хорошо, спасибо
нужно считать полноценную строку после считывания числа (используя nextLine()). как-то так. ладно, не заморачивайтесь))
спасибо за помощь

пысы. https://stackoverflow.com/questions/...ext-or-nextfoo

вот правильная формулировка моей проблемы. я знаю, что я слаб в формулировках

Последний раз редактировалось Alex11223; 06.05.2019 в 18:24.
Алексей9912 вне форума   Ответить с цитированием
Старый 06.05.2019, 14:42   #6
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,908
Репутация: 2668
По умолчанию

Так это совсем другой вопрос и уже даже здесь обсуждался не раз. Только до сих пор непонятно, как чарэт спас бы вас...
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 06.05.2019, 15:03   #7
Алексей9912
Пользователь
 
Регистрация: 30.09.2018
Сообщений: 30
Репутация: 10
По умолчанию

charAt не должен был меня никак спасти. этот метод вообще относится к примеру ввода. поэтому не обращайте на него внимания)

в общем, все решилось

Код:
	
				System.out.print("input some number: ");
				
				int i = in.nextInt();
				
				in.skip("\r\n");
				
				System.out.print("input filler: ");
				
				char c = in.nextLine().charAt(0);
				
				String result = String.format("|%10d|", i).replace(' ', c);
				
				System.out.println();
				System.out.println(result);
решил воспользоваться этим методом решения проблемы. протестил. все работает как надо
Алексей9912 вне форума   Ответить с цитированием
Старый 06.05.2019, 15:17   #8
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 26,100
Репутация: 5675
По умолчанию

Цитата:
Сообщение от Алексей9912 Посмотреть сообщение
решил воспользоваться этим методом решения проблемы. протестил. все работает как надо
да ладно.
попробуйте на запрос "input filler: " просто нажать Enter
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 06.05.2019, 18:00   #9
Black Fregat
Программист
Профессионал
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,499
Репутация: 1038
По умолчанию

Офф-топ.
Вот сейчас сдержался, но если кто ещё приведёт ссылку на эту помойку QaRu буду минусовать. Как же надоел этот паразит, лезущий вверх во всех поисковых выдачах.. Как бы его забанить?
Black Fregat вне форума   Ответить с цитированием
Старый 06.05.2019, 18:35   #10
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,294
Репутация: 3739

icq: 512-765
skype: alexp.frl
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Как же надоел этот паразит, лезущий вверх во всех поисковых выдачах.. Как бы его забанить?
Тут предложили несколько вариантов куда репортить https://meta.stackexchange.com/a/200178/177976

Ну а лично для себя можно сменить регион где-то в настройках гугла/браузера или использовать какое-нибудь расширение типа uBlacklist.
Alex11223 на форуме   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со сканером AnTe Компоненты Delphi 3 22.04.2015 08:47
Работа со сканером. SardorDeveloper Общие вопросы по Java, Java SE, Kotlin 0 04.09.2014 09:55
работа со сканером kodagen Общие вопросы C/C++ 3 17.08.2011 12:27
работы со сканером leon777 Общие вопросы Delphi 2 05.02.2010 20:12
Работа со сканером Terran Софт 3 06.01.2009 14:58


21:59.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.