java - 如何更改Java中的分隔符?

标签 java java.util.scanner delimiter

我有这个小代码:

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/

相关文章:

java - 扫描仪输入跳过下一个输入

java - 通过 cli 参数填充 mojo 的文件集

java - 使用扫描仪添加两个文件中的值不起作用

java - 在 ServletRequest 中获取客户端 IP 时遇到问题

java - 使用数组和长数据类型会导致精度损失

java - 扫描仪在使用 next() 或 nextFoo() 后跳过 nextLine()?

sql - 用于分隔查询文件中多个查询的 PostgreSQL 定界符

c++ - 在 C++ 中使用分隔符获取输入

java - 如何使用扫描仪确定行尾?

java - 如何传递授权参数?