我有这个小代码:
import java.util.*;
public class monogram3 {
public static void main(String[] args) {
String name;
Scanner scanner = new Scanner(System.in);
scanner.useDelimiter(System.getProperty("line.separator"));
System.out.print("Enter your full name (first, middle, last):");
name = scanner.next( );
System.out.println("Name entered: " + name);
}
}
预期输出: 输入您的全名(名字,中间名和姓氏):John Stacy Clug 输入的姓名:John Stacy Clug
我得到的信息: 输入您的全名(名字,中间名和姓氏):John Stacy Clug
代码中是否存在某些错误,它没有显示我输入的全名?我知道还有其他方法可以这样做,但我很想知道这里出了什么问题。
答案 0 :(得分:3)
首先,您应该只使用nextLine
并省去了麻烦。您遇到的问题是在Windows(我假设您使用Windows)上,System.getProperty("line.separator")
是\r\n
,但是System.in仅使用\n
来分隔行(至少在使用Netbeans时会这样) )。结果,由于控制台输入实际上从未包含\r\n
,因此该行
name = scanner.next( );
永远不会停止请求输入,因为它永远不会到达定界符,因此下一行System.out.println("Name entered: " + name);
永远不会运行。只需使用nextLine()
,好吗?
答案 1 :(得分:0)
这可能是一个愚蠢的问题,但是您在输入正确的字符串后按“ Enter”键吗?当前代码以合理的方式为我工作。 输入您的全名(名字,中间名和姓氏):john e doe 输入的姓名:john e doe