Здесь skaner.next()
вернет объект String
, тогда как int
является примитивным типом данных и, следовательно, оба несопоставимы. Чтобы проверить, является ли токен, возвращаемый skaner.next()
, int
или нет, вы можете использовать Integer.parseInt(skaner.next())
, который преобразует String
в int
и выдает NumberFormatException
, если входные данные не являются действительными целыми числами.
package folder;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner skaner = new Scanner(System.in);
while (skaner.hasNext()){
String x = skaner.next();
try {
int y = Integer.parseInt(x);
System.out.println("That is an integer " + y);
}
catch(NumberFormatException e) {
System.out.println("That is a string " + x);
}
}
skaner.close();
}
}
Проверьте эту ссылку для справки.