【发布时间】:2019-08-20 04:39:31
【问题描述】:
我通过 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);
}
}
但是当将密码保存在字符串密码中时(我知道不推荐)
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);
}
}
可以准确打印:
为什么?
【问题讨论】:
-
读作密码的意思是保密。打印出来给大家看,不是保密
-
第一种情况是打印数组的地址,如果要打印数组可以使用
Arrays.toString(password)