确保用户输入= String,而不是int类型

时间:2016-11-14 01:51:03

标签: java loops java.util.scanner

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,那么我希望返回一条错误消息

2 个答案:

答案 0 :(得分:1)

  1. 每个输入都是String,因为String也可能代表字符的数字序列。
  2. 您可以使用正则表达式验证输入。
  3. 以下代码应该有所帮助:

    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。