如何在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。谢谢你的纠正。决心@阿索克很高兴听到这个消息。不要忘记接受。不,我在每个字符串后面输入空格。不,我在每个字符串后面输入空格。