当我说设定值时,我不是说
int a = 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确实与密码申请密码相关,我正在制作密码申请。
我希望用户能够通过在控制台中输入“New Password:123”来设置密码,然后当他们输入密码“123”时,它会显示“Access Granted”
答案 0 :(得分:1)
您的问题可能是您并不总是有3个参数。
New Password: mypass
工作得很好。您可能想要的下一件事就是输入
mypass
然后你的程序应该说Access Granted
但是这不起作用,因为mypass
只有一个单词,当你通过input.split(" ")
分割它时(它会在每个空格字符处拆分输入) )你会得到ArrayIndexOutOfBoundsException
。尝试通过插入类似if (split.length >= 3)
的内容来处理此问题。
答案 1 :(得分:0)
这里的代码就是问题:
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];
}
样品试用:
New Password: 123
Password set to 123
123
Access Granted
一个公平的警告,这段代码非常具体,只有在他们完全按照您的预期输入的情况下才能使用(完美的标点符号和大写字母等)。
答案 2 :(得分:0)
我的代码可以实现您的要求。
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");
}
}
}
}
}
}