我正在编写一个命令行程序,它利用println以非常特定的格式显示文本。我遇到的问题是每当我要求用户通过Scanner.nextLine()输入内容时,控制台会自动在控制台中回显他们的输入。有没有办法禁止控制台立即显示用户输入的文本?如果重要,我正在运行Linux。
答案 0 :(得分:1)
您可以使用自版本6以来Java附带的Console类和readPassword()方法。该方法禁用回显,但只读取必须转换为您需要的字符数组:
Console console = System.console();
if (console == null) {
System.out.println("Console not active!");
System.exit(0);
}
System.out.print("Type something, please: ");
// This won't echo anything
char[] userInput = console.readPassword();