我有这个小代码:
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
<小时/>代码是否有问题,没有显示我输入的全名?我知道还有其他方法可以做到这一点,但我很想知道这里出了什么问题。
最佳答案
首先,您应该使用 nextLine
来避免麻烦。您遇到的问题是,在 Windows 上(我假设您使用 Windows), System.getProperty("line.separator")
是 \r\n
但 System.in仅使用 \n
分隔行(至少在我使用 Netbeans 时是这样)。因此,由于控制台输入实际上从未包含 \r\n
,因此该行
name = scanner.next( );
永远不会停止请求输入,因为它永远不会到达分隔符,因此下一行System.out.println("Name displayed: "+ name);
永远不会运行。只需使用 nextLine()
即可,好吗?
关于java - 如何更改Java中的分隔符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51108824/