Я изучаю Java и создаю библиотеку.Я хочу использовать три метода на одном и том же Сканере, но сканер очищается каждый раз.
Мы используем Jcreator в классе, и мой учитель не смог выяснить, что происходит.Единственное, что работает, это
public static void main(String[] args)
{
Scanner kb = new Scanner(System.in);
String typedStuff = kb.nextLine();
Scanner chopper = new Scanner(typedStuff);
System.out.println(howMany(chopper));
System.out.println(howManyInts(chopper));
System.out.println(howManyIntsAndDoubles(chopper));
}
public static int howMany(Scanner chopper) //
{
String x = "";
int y = 0;
while(chopper.hasNext())
{
y++;
x = chopper.next();
}
return y;
}
public static int howManyInts(Scanner chopper)
{
String x = "";
int y = 0;
while(chopper.hasNext())
{
if (chopper.hasNextInt())
{
y++;
}
x = chopper.next();
}
return y;
}
public static int howManyIntsAndDoubles(Scanner chopper)
{
String x = "";
int y = 0;
while(chopper.hasNext())
{
if (chopper.hasNextDouble())
{
y++;
}
x = chopper.next();
}
return y;
}
Если я введу «да 5.2 2 5.7 6 нет», то мой вывод будет: 6 0 0
, но должно быть: 6 2 4
Я знаю, что он очищает сканер после запуска первого метода, независимо от того, в каком он порядке. Даже если я преобразую сканер в другой тип данных в первых строках метода, он все равно очищает исходный.Спасибо!