Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

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

Здравствуйте! Возникла такая проблема. Допустим, есть сканер.
Считываем 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, 12:47   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

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

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

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

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

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

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

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

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

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, 14:17   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

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

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

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

Ну а лично для себя можно сменить регион где-то в настройках гугла/браузера или использовать какое-нибудь расширение типа uBlacklist.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со сканером AnTe Компоненты Delphi 3 22.04.2015 07: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 19:12
Работа со сканером Terran Софт 3 06.01.2009 13:58