控制台类ReadPassword

时间:2014-02-20 17:50:27

标签: java

String pw = c.readPassword("%s", "pw: ");
System.out.println("got " +pw); 
String name = c.readLine("%s", "name: "); 
System.out.println(" got ", name);

如果用户在提示输入密码时键入fido,然后在提示输入名称时回复bob,结果是什么?

一个。 pw:得到了fido名字:bob得到了bob

B中。 pw:fido得到了fido的名字:bob得到了bob

℃。 pw:得到了fido名字:bob得到了bob

d。 pw:fido得到了fido的名字:bob得到了bob

电子。编译失败。

F。在运行时抛出异常。

答案是E

根据我的回答是E,但我认为在控制台中你不能readPassword String,因为char[]更安全。但SCJP的书说它是因为你不能在

中传递这样的咒语
System.out.println(" got ", name);

“:即使用”,“。我同意书,但我想知道,如果我们写

System.out.println("got" + name); 
它会工作正常吗?什么输出?为什么不使用char[]代替String

1 个答案:

答案 0 :(得分:0)

user2985842你是对的它有两个错误
1)正如你所说的那样

String pw = c.readPassword("%s", "pw: ");

包含错误,readPassword()返回char []但是左值是字符串

2)正如他们所说的那样

System.out.println(" got ", name);

包含错误,一定是

System.out.println(" got "+ name);