День добрый. Пишу большую программу на Java. Решил применить полученные знания на практике. Программа шашки. В цикле мы набираем координату шашки нашей команды и куда ее передвинуть. Далее будет код из main, в котором после 2-3 прохода Scanner один из двух раз не дает ввести координату с вот таким сообщением (через дебаггер увидел):
java.util.Scanner[delimiters=\p{javaWhitespace}+][position=18][match valid=true][need input=false][source closed=false][skipped=false][group separator=\ ][decimal separator=\,][positive prefix=][negative prefix=\Q-\E][positive suffix=][negative suffix=][NaN string=\Q�\E][infinity string=\Q∞\E]
Далее сам код
public class Main {
public static void main(String args[]) throws IOException, InterruptedException {
String old, attack = null;
decktop desk = new decktop();
checker check = new checker();
Usability use = new Usability(desk, check);
Scanner inw = new Scanner(System.in);
Scanner inb = new Scanner(System.in);
//----------
desk.create(check);
desk.vivod();
while(use.whenEnd()) {
if (use.whatTeam()) {
System.out.println("Ходят белые");
if (use.FirstInput) {
System.out.print("Введите коодинату белой шашки:");
old=(String)inw.next();
System.out.print("Введите координату атаки: ");
attack=(String)inw.next();
use.white(old, attack);
} else {
old=attack;
System.out.print("Дополнительный ход. Для шашки " + old+ ". Введите координату атаки еще одной шашки: ");
attack=inw.nextLine();
use.white(old, attack);
}
Без полного кода трудно понять, но бросается в глаза:
Не надо 2 объекта Scanner создавать используйте один и сохраняйте результат в переменные.
Зачем приведение типов: old=(String) inw.next();?
У вас метод next() и так возвращает String:
http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#next()
Там еще дополнительные моменты с шаблоном разделителя есть, у вас тут нет в нем необходимости, лучше возьмите nextLine(). Вот так: old = inw.nextLine();
Не используйте транслит в коде desk.vivod(); это очень плохой тон.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники