字符数组值不包含JAVA中的用户输入值
我定义了一个字符数组,它的值等于用户从控制台输入的值。 为了测试这是否正确,我打印出字符数组中的每个值,看看是否正确字符数组值不包含JAVA中的用户输入值,java,arrays,character,Java,Arrays,Character,我定义了一个字符数组,它的值等于用户从控制台输入的值。 为了测试这是否正确,我打印出字符数组中的每个值,看看是否正确 char[]userPass=console.readPassword(将newPass数组的引用传递给isValid,因此在执行以下操作时: Arrays.fill(userInput, (char) 0); 您正在用0填充newPass。因为无论密码是否有效,您都要这样做,所以调用isValid后,数组将始终为0。打印全零字符数组时,不会打印任何内容,因为0是空字符 我不认
char[]userPass=console.readPassword(将newPass
数组的引用传递给isValid
,因此在执行以下操作时:
Arrays.fill(userInput, (char) 0);
您正在用0填充newPass
。因为无论密码是否有效,您都要这样做,所以调用isValid
后,数组将始终为0。打印全零字符数组时,不会打印任何内容,因为0是空字符
我不认为数组.fill
调用在isValid
isValid
中有任何作用,它根本不应该更改传入的数组
静态布尔值有效(char[]userInput){
对于(int i=0;我猜isValid
对数组做了些什么。但我可以肯定地说,您需要提供一个,我可以复制并粘贴到IDE中并重现问题的最小数量的代码。抱歉。我已经更新了问题,以包括isValid
,正如我所想的,无论密码是有效的。你为什么要这么做?为什么不让数组单独存在?我明白了。我忘记了数组在Java中是通过引用传递的,我以为我只是在复制数组。谢谢!