如何使用扫描仪在控制台中的字符之间写入



我希望能够使用Scanner在控制台中的字符之间进行写入。我使用的代码:

Scanner sc = new Scanner(System.in);
System.out.print("[customer ID: t]");
int id = sc.nextInt();

当前输出为:

[customer ID:   ]

如果我试着在括号之间输入,就会发生这种情况:

[customer ID:   ]123

有什么方法可以使文本出现在括号之间吗?预期输出:

[customer ID: 123]

答案是否定的。您需要点击sc.nextInt((的回车键来读取输入。任何输出都将在下一行,而不是在您输入的行上。

System.out.print("[Customer ID: " + sc.nextInt() + "]";
24
[Customer ID: 524]

我能想到的最接近的是这样的东西:

System.out.print("Customer ID: ");
int id = sc.nextInt();

其产生以下输出:

Customer ID: 1234

问题的答案是否定的。一旦输出被发送到控制台(或其他输出设备(,就完成了。您不能追溯修改已使用的输出并对其进行修改。您必须创建一个新的输出并将其发送到输出设备。这就像打印一张纸,然后在打印出来后直接从程序中对纸进行校正。

或者,你可以做一些类似的事情

Scanner sc = new Scanner(System.in);
System.out.print("Enter your customer ID: ")
int id = sc.nextInt();
System.out.print("[customer ID: " + id + "]");

不幸的是,不可能按照你的要求去做。