Java-将多个控制台输入字符串读入变量
我到处寻找,找不到解决我问题的办法。在我的一门课程中,我的任务是编写一个简单的控制台电子邮件系统。当提示用户输入消息正文时,保存输入的字符串变量只接受一个单词,而不是整个消息。我读到应该使用readLine(),但当程序提示用户输入消息正文时,它会完全跳过该段的输入。为了解决这个问题,我读到在读这行之前应该放一个跳转(“\n”)。然而,现在用户按下Enter键后,程序不会结束。它只是不断地输入信息,不让我做任何事情 下面是一些代码以帮助您:Java-将多个控制台输入字符串读入变量,java,input,Java,Input,我到处寻找,找不到解决我问题的办法。在我的一门课程中,我的任务是编写一个简单的控制台电子邮件系统。当提示用户输入消息正文时,保存输入的字符串变量只接受一个单词,而不是整个消息。我读到应该使用readLine(),但当程序提示用户输入消息正文时,它会完全跳过该段的输入。为了解决这个问题,我读到在读这行之前应该放一个跳转(“\n”)。然而,现在用户按下Enter键后,程序不会结束。它只是不断地输入信息,不让我做任何事情 下面是一些代码以帮助您: Scanner in = ne
Scanner in = new Scanner(System.in);
//Declare variables
String subject, reciepent, message = "";
//Get subject
System.out.println("> Enter subject: ");
subject = in.next();
//Get reciepent
System.out.println("> Enter reciepent: ");
reciepent = in.next();
//Get message
System.out.println("> Enter message: ");
in.skip("\n");
message = in.nextLine();
//Print out message to verify user input
System.out.println("> " + message);
我不明白nextLine()如何适用于我搜索的所有线程,但对我来说不是。尝试使用nextLine()
等待用户输入,然后返回输入。您的代码应该如下所示:
Scanner in = new Scanner(System.in);
//Declare variables
String subject, recipient, message;
//Get subject
System.out.println("> Enter subject: ");
subject = in.nextLine();
//Get recipient
System.out.println("> Enter reciepent: ");
recipient = in.nextLine();
//Get message
System.out.println("> Enter message: ");
message = in.nextLine();
//Print out message to verify user input
System.out.println("> " + message);
怎么样
Scanner s = new Scanner(System.in);
String line = "";
while((line = s.nextLine()) != null) {
System.out.println("> Enter subject: ");
subject = in.nextLine();
//Get recipient
System.out.println("> Enter reciepent: ");
recipient = in.nextLine();
//Get message
System.out.println("> Enter message: ");
message = in.nextLine();
//Print out message to verify user input
System.out.println("> " + message);
}
此问题的解决方案不是使用
.skip()
方法,而是使用.nextLine()
方法,这将根据需要从输入流中删除尾随的“\n”字符
因此更改行:
in.skip(“\n”)
到.nextLine()中的
所以就在recipent=in.next()之后代码>在.nextLine()中放置一个
并查看这是否有帮助。另外,我很确定你可以去掉.skip(“\n”)中的代码>除非有原因。这是因为next()
不使用换行符,请参阅: