Java打印两行

时间:2014-04-25 19:48:28

标签: java java.util.scanner

我正在尝试在屏幕上打印一条消息,然后从键盘上取一个值。我连续打印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:

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

println创建一个新行,而print不会。您应该考虑使用println,刷新缓冲区或调用新的换行符“\ n”

答案 1 :(得分:2)

这是因为switch语句上方的行有key.nextInt() *

扫描程序读取整数,但它会在缓冲区中留下行尾字符'\n'。在switch语句中的'\n'向您返回一些相关数据之前,您需要以某种方式使用该key.nextLine();字符。

要解决此问题,请插入

key.nextLine();

switch声明前面。

* 不要问我怎么知道: - )