我正在尝试在屏幕上打印一条消息,然后从键盘上取一个值。我连续打印4张,但我有扫描方法。当我运行我的代码时,前两个打印一起运行,并且在第一次打印后,我无法在第一个变量处插入值。
case 1:
System.out.println("###Book Data###");
System.out.print("Name of the book:\t");
String Name = key.nextLine();
System.out.print("ISBN of the book:\t");
String ISBN = key.nextLine();
System.out.print("Author of the book:\t");
String author = key.nextLine();
System.out.print("Copies of the book:\t");
int copies = key.nextInt();
book Book = new book(ISBN,Name,author,copies);
lib.AddBook(Book);
break;
#########Text Printed######
Please enter your selection: 1
###Book Data###
Name of the book: ISBN of the book:
提前感谢您的帮助!
答案 0 :(得分:2)
println创建一个新行,而print不会。您应该考虑使用println,刷新缓冲区或调用新的换行符“\ n”
答案 1 :(得分:2)
这是因为switch
语句上方的行有key.nextInt()
* 。
扫描程序读取整数,但它会在缓冲区中留下行尾字符'\n'
。在switch语句中的'\n'
向您返回一些相关数据之前,您需要以某种方式使用该key.nextLine();
字符。
要解决此问题,请插入
key.nextLine();
在switch
声明前面。
* 不要问我怎么知道: - )