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

How to write in between characters in console using 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 + "]");

很遗憾,无法按照您的要求进行操作。