我的部分代码存在一些问题。
if (option1 == 1){
//Add Movie
System.out.print('\u000C');
System.out.println(">>Add Movie<<");
System.out.println("");
System.out.print("Title: ");
String title = scan.nextLine();
System.out.print("Year: ");
int year = scan.nextInt();
}
当我执行代码时,它打印出来,
Title: Year:
完全跳过scan.nextLine();所以我无法为它提供任何意见。
有没有人知道为什么会这样做?
修改
我已经设法解决了这个问题。原来是scan.nextLine();
错误,并且没有完全移动到新行。谢谢大家:)
答案 0 :(得分:0)
也许在此代码之前有一个next()
系列
input.nextInt();
input.next();
input.next....(); //Excluding input.nextLine()
不会消耗额外的换行符,而且会占用您的声明
String title = scan.nextLine();
要解决此问题,您可以在这些代码之前添加额外的nextLine()
。
所以这段代码应该可行
scan.nextLine(); //Consume extra new line
System.out.print("Title: ");
String title = scan.nextLine();
System.out.print("Year: ");
int year = scan.nextInt();
答案 1 :(得分:0)
对我而言,代码工作正常 -
Scanner scan=new Scanner(System.in);
System.out.print("title: ");
String title=scan.nextLine();
System.out.print("year: ");
int year=scan.nextInt();
System.out.println("title is: "+title+" and year is: "+year);
我得到的输出是这个 -
title: king
year: 2015
title is: king and year is: 2015
答案 2 :(得分:-1)
这段代码。
Scanner scan=new Scanner(System.in);
System.out.print("Title: ");
String title = scan.nextLine();