我通过Console.readPasswd()获得了一个密码。当我将其保存在char数组(char [] passwd)中并使用System.out.println(passwd)时,结果是
我输入的是“ 123”。
import java.io.Console;
public class ConsoleTest1 {
public static void main(String[] args){
Console console = System.console();
String username = console.readLine("user name :");
System.out.println("user name ="+username);
char[] password = console.readPassword("passwd:");
System.out.println("password="+password);
}
}
但是在将passwd保存为String passwd时(我不建议这样做)
import java.io.Console;
public class ConsoleTest1 {
public static void main(String[] args){
Console console = System.console();
String username = console.readLine("user name :");
System.out.println("user name ="+username);
String password = new String(console.readPassword("passwd:"));
System.out.println("password="+ password);
}
}
可以准确打印:
为什么?
答案 0 :(得分:0)
直接使用"a"
打印char数组将打印数组的对象表示形式,因此将打印java -jar -Dspring.config.location=/path/to/my/file.properties app.jar
。
实际上,即使该表示形式也告诉您这是一个char数组,因为前缀为System.out.println
,[C@232204a1
表示打印对象是一个数组,类型为[C
,字符有关更多信息,请see。
您需要将其转换为字符串,就像在您发布的第二个示例中一样,以使其具有人类可读格式(忽略所有应该的问题,使其成为人类可读格式。