使用 InputStream.skip() 时出错

Error using InputStream.skip()

我正在寻找类似于 C++ 的 cin.ignore() 函数的东西。

我是 JAVA 的新手,我正在尝试这样的事情

Scanner user_input = new Scanner(System.in) ;   
int num1, num2 ; 

System.out.print("\n Enter the two numbers : " +
                 "\n number 1 : ") ;    
num1 = user_input.nextInt() ; 

System.out.print("\n Number 2 : ") ; 
num2 = user_input.nextInt() ;

在这一行之后,当我试图从用户那里获取 String 输入时

String choice; 
choice = user_input.nextLine() ;

它只是忽略它继续到下一行。

我在接受用户的 String 输入之前尝试使用 InputStream.skip(long) ;。我从 here 中读到等同于 C++ 的 cin.ignore()

我犯了什么错误?

哦,我也包括了这个 import java.io.InputStream;

编辑:我问的是我是否可以在这里使用 InputStream.skip()

"It just ignores it continues to the next line."

当你说 num2 = user_input.nextInt() ; 时,你在最后按 return(输入)键也不会与 num2 一起读取,因此当你说 choice = user_input.nextLine(); 时(return key) 被这个方法调用消耗掉了,因此你看到它忽略了你读取一行的方法调用。

您可以通过两种方式解决此问题:

  • 您可以读取整行并在读取 num2 时转换为整数,例如

    num2 = Integer.parseInt(user_input.nextLine());
    
  • 或者只是为了消耗 return 按键,您可以添加额外的 readline 调用,例如:

    user_input.nextLine();//consume enter key press
    choice = user_input.nextLine();