Java console: readPassord()- size/length 密码
Java console: readPassord()- size/length of the password
我正在尝试了解 java 控制台 class 及其 readPassword 方法。以下是我的代码,
package com.files;
import java.io.Console;
public class NewConsole {
public static void main(String[] args) {
Console c = System.console();
char[] pw=new char[2];
pw = c.readPassword("%s", "pw: ");
System.out.println(pw);
}
}
pw 是大小为 2 的字符数组。但是当执行上面的程序时,如果我在 cmd 中输入 pw 作为 "abcd"(> 比 pw 的数组大小)它工作正常。当输入的大小超过 pw 的大小时,为什么它不将索引抛出异常?
观看下面的代码,您可以弄清楚这里发生了什么您正在将新的字符序列分配给 pw[]
import java.io.Console;
public class NewConsole {
public static void main(String[] args) {
Console c = System.console();
char[] pw=new char[2];
char [] nw = "hello".toCharArray();
System.out.println(pw.length);
pw = nw;
System.out.println(pw.length);
}
}
而且如果你想抛出 ArrayIndexOutOfBoundsException 然后尝试
import java.io.Console;
public class NewConsole {
public static void main(String[] args) {
Console c = System.console();
char[] pw=new char[2];
char [] str = c.readPassword("%s", "pw: ");
for(int i=0;i<str.length;i++)
pw [i] = str[i];
System.out.println(pw);
}
}
;-) 如果您发现发生了什么,请关闭问题
我正在尝试了解 java 控制台 class 及其 readPassword 方法。以下是我的代码,
package com.files;
import java.io.Console;
public class NewConsole {
public static void main(String[] args) {
Console c = System.console();
char[] pw=new char[2];
pw = c.readPassword("%s", "pw: ");
System.out.println(pw);
}
}
pw 是大小为 2 的字符数组。但是当执行上面的程序时,如果我在 cmd 中输入 pw 作为 "abcd"(> 比 pw 的数组大小)它工作正常。当输入的大小超过 pw 的大小时,为什么它不将索引抛出异常?
观看下面的代码,您可以弄清楚这里发生了什么您正在将新的字符序列分配给 pw[]
import java.io.Console;
public class NewConsole {
public static void main(String[] args) {
Console c = System.console();
char[] pw=new char[2];
char [] nw = "hello".toCharArray();
System.out.println(pw.length);
pw = nw;
System.out.println(pw.length);
}
}
而且如果你想抛出 ArrayIndexOutOfBoundsException 然后尝试
import java.io.Console;
public class NewConsole {
public static void main(String[] args) {
Console c = System.console();
char[] pw=new char[2];
char [] str = c.readPassword("%s", "pw: ");
for(int i=0;i<str.length;i++)
pw [i] = str[i];
System.out.println(pw);
}
}
;-) 如果您发现发生了什么,请关闭问题