У меня возникла проблема, пытаясь понять, как я могу пройти через строку ввода с клавиатуры, которую пользователь выдаст, например:
Anika 14 Dan 16
Я хочу прочитать каждый токени присвойте String name, Int, age, String name, int age. в этой последовательности. Это легко, однако, если пользователь вводит Anika Anika Anika Anika 13 13 13 Dan 16
Тогда я хочу, чтобы программа:
Anika,
Integer needed got String,
Integer needed got String,
Integer needed got String,
13,
String needed got Integer,
String needed got Integer,
Dan,
16
Итак, первым всегда будет строка, котораяСлово РЕДАКТИРОВАТЬ: «слово», вторая строка типа int и thrid, которая является «словом», и четвертая строка типа int. Однако я не могу это смоделировать.
Scanner scan = new Scanner(System.in);
String name = null;
int age = 0;
String name2= null;
int age2= 0;
if(scan.hasNext() == true)
name = scan.next();
age = scan.nextInt();
name2= scan.next();
age2= scan.nextInt();
Я знаю, что если я вернусь, я получу правильный порядок, но это дополнительные входы, которые я хотел бы игнорировать, но написать выражение оператора, почему оно неверно, и затем продолжить поиск следующего. int или третья строка и т. д.
boolean isstring = false;
boolean isnumber = false;
do {
if (scan.hasNext())
{
name = scan.next();
isstring = true;
}
else {
System.out.println("Need String got Integer");
isstring = false;
scan.next();
}
} while (!isstring);
do {
if (scan.hasNextInt())
{
age = scan.nextInt();
isnumber=true;
}
else {
System.out.println("Need Integer got String");
isnumber=false;
scan.nextInt();
}
} while (!isnumber);
do {
if (scan.hasNext())
{
name2 = scan.next();
isstring = true;
}
else {
System.out.println("Need String got Integer");
isstring = false;
scan.next();
}
} while (!isstring);
do {
if (scan.hasNextInt())
{
age2 = scan.nextInt();
isnumber = true;
}
else {
System.out.println("Need Integer got String");
isnumber=false;
scan.nextInt();
}
} while (!isnumber);
}
Я пытался использовать do в то время как с ifs, и это не сработало. Моя логика где-то неверна, и я думаю, что это может быть метод has.next ().
Любая помощь будет оценена !!