public static void main(String[] args) {
// Create a new Scanner object to obtain
System.out.println("Please enter the word you are looking for");
// input from System.in
Scanner input = new Scanner(System.in);
String userin = input.next();
我的目标是编写一个循环来分析用户的输入,以确保它是String
并不代表int
。如果是int,那么我希望返回一条错误消息
答案 0 :(得分:1)
String
,因为String
也可能代表字符的数字序列。以下代码应该有所帮助:
String userin = input.next();
if (userin.matches("[0-9a-zA-Z]*[a-zA-Z]+[0-9a-zA-Z]*")) {
//input contains only small and large letters. At least one character.
} else {
throw new RuntimeException("The input must be single word and mustn't contain digits only");
}
答案 1 :(得分:-1)
正如其他人所说,每个输入都是一个字符串。如果要拒绝仅由数字字符组成的字符串,例如" 1234",您可以通过几种不同的方式检查它是否为整数 - 可能遍历String并在每个字符上调用isDigit(),或者将String传递给parseInt并捕获NumberFormatException。