我正在寻找类似于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() ;
它只是忽略它继续下一行。
我在从用户那里获取InputStream.skip(long) ;
输入之前尝试使用String
。我从here读取的内容相当于C ++的cin.ignore()
我犯的错误是什么?
哦,我也把它包括在内import java.io.InputStream;
编辑:我问我是否可以在这里使用InputStream.skip()
。
答案 0 :(得分:0)
“它只是忽略它继续到下一行。”
当你说num2 = user_input.nextInt() ;
你在最后按回车键(回车键),而不是与num2一起阅读,因此当你说choice = user_input.nextLine();
它(返回键)被消耗时使用此方法调用,因此您会看到它忽略了您的方法调用以读取一行。
您可以通过两种方式解决此问题:
您可以读取整行并在读取num2时转换为整数,如
num2 = Integer.parseInt(user_input.nextLine());
或者只是按下返回键,您可以添加额外的readline调用,如:
user_input.nextLine();//consume enter key press
choice = user_input.nextLine();