当用户按下“ Enter”键或空格键时,错误消息将弹出

时间:2018-09-24 18:42:17

标签: java user-input is-empty

当用户按下Enter键或空格键而不是字符串时,我想打印一条错误消息。我已经尝试过isEquals(“”)和isEmpty(),但是还没有找到任何有效的方法。

这是我的代码:

import java.util.Scanner;

public class check{
    public static void main(String args[]){
      System.out.println("Enter a number: ");
      Scanner keyboard = new Scanner(System.in);
      String input = keyboard.next();

      if(input.equals("")){
        System.out.println("Empty");
      } else {
        System.out.println("number inputed");
    }
  }

}

5 个答案:

答案 0 :(得分:0)

一种方法,将keyboard.next()更改为keyboard.nextLine(),使用trim()删除不必要的空格,并使用isEmpty()进行检查。

String input = keyboard.nextLine().trim();
if (input.isEmpty()) {
    // error message
} else {
    // good to go
}

答案 1 :(得分:0)

import java.util.Scanner;

public class check{
    public static void main(String args[]){
      System.out.println("Enter a number: ");
      Scanner keyboard = new Scanner(System.in);
      String input = keyboard.nextLine();


      if(input.trim().equals("")){
        System.out.println("Empty");
      } else {
        System.out.println("number inputed");
    }
  }
}

答案 2 :(得分:0)

要检查字符串输入是否为空,可以使用String.isEmpty()方法。看下面:

String input = keyboard.nextLine();
if(!input.isEmpty()) {
  //the input is not empty! 
} 
else {
  //the input is empty! 
} 

但是请注意,由于您希望接收数字作为输入,因此不应将其作为字符串检索。以下是程序从用户检索double的示例。 Scanner提供了许多验证用户输入的方法。在这种情况下,我使用hasNextDouble()检查输入是否为数字。

Scanner scanner = new Scanner(System.in); 
System.out.println("Enter a number:");

while(!scanner.hasNextDouble()) {
  System.out.println("That's not a number!");
  scanner.next();
} 

double numberInput = scanner.nextDouble();
System.out.println("The entered number was " + numberInput);

答案 3 :(得分:0)

奇怪的是,运行您的代码时没有出现错误。但是,我注意到您的代码根本不会对空输入做出反应(只需按Enter键)。如果要检查,可以使用keyboard.nextLine()。

从其余的代码来看,似乎您希望用户仅输入数字。如果您使用Scanner,检查用户是否输入整数的简单方法是keyboard.hasNextInt()。

这意味着您可以执行以下操作:

if(keyboard.hasNextInt()) {
  int yourNumber = keyboard.nextInt();
  System.out.println("Your number is: " + your Number);
}
else {
  System.out.println("Please enter a valid integer");
}

答案 4 :(得分:0)

我制作了一个类似于您的示例程序,并使用nextLine()代替了next()。当用户输入空格并单击输入时,他将打印“空格”,否则打印“数字”。

enter image description here