Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/20: Рейтинг темы: голосов - 20, средняя оценка - 4.80
White bear
0 / 0 / 0
Регистрация: 30.07.2012
Сообщений: 14
1

Scanner в Java (scanner.nextLine()

31.07.2013, 22:50. Просмотров 3898. Ответов 7
Метки нет (Все метки)

Добрые люди, есть код, который при одном itemName = scanner.nextLine(); не останавливается чтобы я мог вписать имя - сразу кидает на проверку пустого поля, а когда я просто дублирую строку еще раз - все работает как надо. В чем прикол? До этого вписывал кол-во игроков через scanner.nextInt() . Что делаю не так? 2 одинаковые строки - это не дело. Есть ли другие варианты вместо nextLine() ? Спасибо.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public void beginMenu() {
System.out.println("Введите имя игрока (не менее 2 символов  и не более 15 символов) =>");
            itemName = scanner.nextLine();
//          itemName = scanner.nextLine();   <--- обратите внимание на эту строку!!!!!!
            players.setNamePlayer(checkNameLenght(itemName));
}
 
private String checkNameLenght(String name) {
        if (name.length() < 2 || name.length() > 15) {
        while (name.length() < 2 || name.length() > 15) {
                System.out.println("ВНИМАНИЕ!!! Вы ввели имя не входящее в рамки условия!!!");
                System.out.println("Введите имя снова!!! =>");
                name = scanner.nextLine();
            }
        }
        return name;
    }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2013, 22:50
Ответы с готовыми решениями:

Методы Scanner
Есть ли метод на подобии strtok с++ из библиотеки string.h ? Необходимо разбить строку на слова и...

Scanner(System.in);
Доброго времени суток. В операторе Switch пытаюсь спарсить пункт выбора меню. Собственно в коде...

FileNotFoundException при работе со Scanner
Здравствуйте. Я недавно начал изучать Java (до этого изучал C#) по книге Хорстманна и столкнулся с...

Проблема в чтении чисел через Scanner
Привет. Перевожу программу с C++. Проблема в чтении чисел через Scanner. Код примерно такой:...

как прочесть object type используя стандартный scanner?
Javу,как и вообще программирование, учу несколько недель так что не судите строго!Сейчас пуши...

7
AckiyBolt
651 / 400 / 35
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
01.08.2013, 08:44 2
так вы же его два раза вызываете в строках 3 и 13
0
White bear
0 / 0 / 0
Регистрация: 30.07.2012
Сообщений: 14
02.08.2013, 00:42  [ТС] 3
а не должен этот сканер впервый раз остановиться и ждать пока я не введу переменную itemName чтобы далее этот itemName ушел в метод checkNameLenght(String name) ?

на экран построчно выводит следующее:
Введите имя игрока (не менее 2 символов и не более 15 символов) =>
ВНИМАНИЕ!!! Вы ввели имя не входящее в рамки условия!!!
Введите имя снова!!! => [[[и вот тут ждет моего ввода]]]

т.е. в идеале должен ждать сразу после первой строки. Может я где-то ошибся? Хотя с виду все нормально. Я смотрю либо на мои руки, либо на метод scanner.nextLine()
судя по if в методе - он все же берет сам себе что-то и влазит в while.
0
AckiyBolt
651 / 400 / 35
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
02.08.2013, 15:57 4
а. точно. завтыкал
если вы запускаете программу в иде - попробуйте из консоли
0
02.08.2013, 15:57
Nsbaq
23 / 23 / 7
Регистрация: 21.04.2013
Сообщений: 52
13.08.2013, 14:24 5
есть ли возможность создать scanner как-то иначе нежели new Scanner(System.in)?
предполагаю, что из-за истории предыдущего использования сканера такая тема.
0
tankomaz
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
440 / 439 / 100
Регистрация: 14.10.2012
Сообщений: 1,147
Записей в блоге: 9
13.08.2013, 17:23 6
странно, у меня работает всё правильно

есть ли возможность создать scanner как-то иначе нежели new Scanner(System.in)?
создайте второй сканнер и посмотрите, не обязательно же работать с одним объектом если вы его подозреваете
0
AckiyBolt
651 / 400 / 35
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
14.08.2013, 01:18 7
Цитата Сообщение от Nsbaq Посмотреть сообщение
есть ли возможность создать scanner как-то иначе нежели new Scanner(System.in)?
вы ему в конструктор передаете поток который он должен обрабатывать. в данном случае "входящий"
0
Nsbaq
14.08.2013, 09:26     Scanner в Java (scanner.nextLine()
  #8

Не по теме:

вы да вы. я не ТС). как раз у ТСа я спрашивал - может он как-то по другому сканер создает. имхо тема закрыта

0
14.08.2013, 09:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.08.2013, 09:26
Привет! Вот еще темы с ответами:

Как регулировать количество значений, возвращаемых объектом типа Scanner?
Доброго времени суток. Не могу побороть один момент. Простенькая программка, поведение которой...

Как в jdeveloper 12 использовать Scanner?
Как в jdeveloper 12 использовать Scanner и принимать данные от пользователя?

Капризный Scanner.nextLine()
Вот я уже запарился за время знакомства с java с тем что Scanner постоянно работает как-то по...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru