如何在Java中更改分隔符?

如何在Java中更改分隔符?,java,java.util.scanner,delimiter,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.prin

我有一个小代码:

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)从不运行。只要使用
nextLine()
,好吗?

首先,你应该使用
nextLine
,省去了麻烦。您遇到的问题是,在Windows上(我假设您使用Windows),
System.getProperty(“line.separator”)
\r\n
,但System.in仅使用
\n
分隔行(至少在我使用Netbeans时是这样)。因此,由于控制台输入实际上从未包含
\r\n
,因此

name = scanner.next( );

永不停止请求输入,因为它从未到达分隔符,因此下一行
System.out.println(“输入的名称:”+Name)从不运行。只需使用
nextLine()
,好吗?

这可能是一个愚蠢的问题,但您在输入字符串后按“回车”正确吗?当前的代码以合理的方式为我工作。 输入您的全名(第一、中间、最后):john e doe
输入姓名:john e doe

这可能是一个愚蠢的问题,但您在输入字符串后按“回车”正确吗?当前的代码以合理的方式为我工作。 输入您的全名(第一、中间、最后):john e doe
输入名称:john e doe

您看到了什么输出?您希望得到什么?您能提供您输入的内容和获得的内容的示例吗?请回答您的问题,因为这些信息太重要了,无法隐藏在注释中。您是否考虑过只使用
Scanner.nextLine()
,而不使用扫描仪的分隔符?无法重现:您看到了什么输出?您希望得到什么?您能提供您输入的内容和获得的内容的示例吗?请回答您的问题,因为这些信息太重要了,无法隐藏在注释中。您是否考虑过只使用
Scanner.nextLine()
,而不使用扫描仪的分隔符?无法重现:是的,我使用的是windows。谢谢你的纠正。决心@阿索克很高兴听到这个消息。别忘了接受。是的,我用的是windows。谢谢你的纠正。决心@阿索克很高兴听到这个消息。不要忘记接受。不,我在每个字符串后面输入空格。不,我在每个字符串后面输入空格。