Java将两行打印在一起
我试图在屏幕上打印一条消息,然后从键盘上获取一个值。我一行有4张照片,但它们之间有扫描方法。当我运行我的代码时,前两个打印一起运行,我不能在第一个打印后的第一个变量处插入值Java将两行打印在一起,java,java.util.scanner,Java,Java.util.scanner,我试图在屏幕上打印一条消息,然后从键盘上获取一个值。我一行有4张照片,但它们之间有扫描方法。当我运行我的代码时,前两个打印一起运行,我不能在第一个打印后的第一个变量处插入值 case 1: System.out.println("###Book Data###"); System.out.print("Name of the book:\t"); String Name = key.nextLine();
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:
提前感谢您的帮助 println生成新行,而print不生成新行。您应该考虑使用PrimTLN,刷新缓冲区,或者调用新的行转义字符“\n”< /p>
PrtLn在打印没有打印的情况下生成新的行。您应该考虑使用PrimTLN,刷新缓冲区,或者调用一个新的行转义字符“\n”< /P> < P>这是因为上面的代码> >开关> /Cux>语句有<代码> KEY.NEXTIN() *. 扫描器读取整数,但将行尾字符
'\n'
保留在缓冲区中。您需要以某种方式使用'\n'
字符,在键.nextLine()之前将向您返回一些相关数据
要解决此问题,请插入
key.nextLine();
在开关
语句前面
*不要问我如何知道:-)这是因为您的开关
语句上方的行具有键.nextInt()
*
扫描器读取整数,但将行尾字符'\n'
保留在缓冲区中。您需要以某种方式使用'\n'
字符,在键.nextLine()之前将向您返回一些相关数据
要解决此问题,请插入
key.nextLine();
在开关
语句前面
*别问我是怎么知道的:-)是的,这很有效!你能解释一下为什么会发生这种情况,或者通过搜索什么来找到问题的解决方案吗?@SeekerakosScanner
保留一个指向键盘输入缓冲区的“指针”。当用户键入内容时,字符进入缓冲区。从扫描仪读取时,字符将从缓冲区中删除。您要求用户输入一个菜单选项;他按下1
,然后点击[输入]
。您的代码从扫描仪读取nextInt()
,取'1'
。[Enter]
仍然存在。现在,在case
语句中请求nextLine()
<代码>扫描仪
会看到[输入]
,因此它会立即返回一条空行!如果我有insert key.close();它将执行与我插入key.nextLine()相同的操作;在我切换之前?@Seekerakos不,它会不一样,因为如果在调用close()
后尝试读取任何内容,您会遇到异常。是的,这很有效!你能解释一下为什么会发生这种情况,或者通过搜索什么来找到问题的解决方案吗?@SeekerakosScanner
保留一个指向键盘输入缓冲区的“指针”。当用户键入内容时,字符进入缓冲区。从扫描仪读取时,字符将从缓冲区中删除。您要求用户输入一个菜单选项;他按下1
,然后点击[输入]
。您的代码从扫描仪读取nextInt()
,取'1'
。[Enter]
仍然存在。现在,在case
语句中请求nextLine()
<代码>扫描仪
会看到[输入]
,因此它会立即返回一条空行!如果我有insert key.close();它将执行与我插入key.nextLine()相同的操作;在我切换之前?@Seekerakos不,这不一样,因为如果在调用close()
后尝试读取任何内容,您会遇到异常。