“我该怎么做?”;“设置”;在java中多次使用int/String值?
当我说设置一个值时,我不是指 INTA=10; 或 字符串b=“你好” 下面是我试图开始工作的代码:“我该怎么做?”;“设置”;在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);
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");
}
}
}
}
}
}您的意见是什么?您能试着更清楚地解释一下您的要求吗?