Java 7 Java控制台:readPassord()-密码的大小/长度
我试图理解java控制台类及其readPassword方法。下面是我的代码Java 7 Java控制台:readPassord()-密码的大小/长度,java-7,Java 7,我试图理解java控制台类及其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
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.io.Console;
公共类新控制台{
公共静态void main(字符串[]args){
Console c=System.Console();
char[]pw=新字符[2];
char[]str=c.readPassword(“%s”,“pw:”);
对于(int i=0;ipw
不再是大小为2的字符数组,您可以重新分配pw
。