“我该怎么做?”;“设置”;在java中多次使用int/String值?

“我该怎么做?”;“设置”;在java中多次使用int/String值?,java,Java,当我说设置一个值时,我不是指 INTA=10; 或 字符串b=“你好” 下面是我试图开始工作的代码: import java.util.Scanner; public class Main { private static String Password; public static void main(String[] args){ while(true){ Scanner scanner = new Scanner(System.in);

当我说设置一个值时,我不是指

INTA=10; 或 字符串b=“你好”

下面是我试图开始工作的代码:

import java.util.Scanner;

public class Main {

    private static String Password;

    public static void main(String[] args){
        while(true){
        Scanner scanner = new Scanner(System.in);
        String input = scanner.nextLine();

        String[] split = input.split(" ");
        String split1 = split[0];
        String split2 = split[1];
        String split3 = split[2];



        if(split1.equals("New")){
            if(split2.equals("Password:")){
                Password = split3;
                System.out.println("Password set to " + Password);
            }
        }
        if(split2.equals("")){
            if(split3.equals("")){
                if(split1.equals(Password)){
                    System.out.println("Access Granted");
                    }
                }
            }
        }
    }
}
我无法将密码“设置”为123或abc。我想知道我怎样才能使这项工作成功

编辑:@dfeuerit确实与密码有关,我正在制作一个密码应用程序,我正在制作一个密码应用程序


我希望用户能够通过在控制台中键入“newpassword:123”来设置密码,然后当他们键入密码“123”时,它会显示“Access grated”

您的问题可能是您并不总是有3个参数

New Password: mypass
应该很好。下一件你可能想做的事就是进去

mypass

然后你的程序应该说
accessgrated
,但这不起作用,因为
mypass
只有一个字,当你通过
input.split(“”)
(它在每个空格字符处分割你的输入)将得到一个
ArrayIndexOutOfBoundsException
。如果(split.length>=3),请尝试插入类似于
的内容来处理此问题。
您的代码就是问题所在:

String[] split = input.split(" ");
String split1 = split[0];
String split2 = split[1];
String split3 = split[2];
分割输入不一定分为3部分。为了满足您的需要,第二次输入密码以获得访问权限时,密码将只包含在一个部分中

所以(这是非常硬编码的代码),您可以测试是否有三个部分来设置字符串。否则,请检查是否只有一部分(他们正在输入访问密码)。确保预先初始化字符串,以便它们始终具有值。将上述代码更改为:

String split1 = "", split2 = "", split3 = "";
if (split.length == 3) {
    split1 = split[0];
    split2 = split[1];
    split3 = split[2];
} else if (split.length == 1) {
    split1 = split[0];
}

样本试验:

新密码:123
密码设置为123
123
允许访问


这是一个很好的警告,该代码非常具体,仅在他们完全按照您的预期输入(完美的标点符号和大写字母等)的情况下才有效。

我的代码可以实现您的要求

package com.test;

import java.util.Scanner;

public class InputPassword {
private static String password = "";

public static void main(String[] args) {
    // TODO Auto-generated method stub
    while (true) {
        Scanner scanner = new Scanner(System.in);
        String input = scanner.nextLine();
        String[] split = input.split(" ");
        if (split.length == 3) {
            if ("New".equals(split[0]) && "Password:".equals(split[1])) {
                password = split[2];
                System.out.println("Password set to " + password);
            }
        } else if (split.length == 1) {
            if ("quit".equals(split[0])) {
                System.exit(0);
            } else {
                if (password.equals(split[0])) {
                    System.out.println("Access Granted");
                }
            }
        }
    }
}

}

您的意见是什么?您能试着更清楚地解释一下您的要求吗?