Java 提示用户输入与特定模式匹配的密码
我已经写了一些代码,但我似乎不知道如何获得字符、数字或符号的确切数量。我修正了我的代码一点,但它不工作,我不知道为什么 我的要求是 编写一个Java程序,提示用户输入与特定模式匹配的密码。您的程序必须批准用户的输入。。以下是模式,顺序如下: 我的代码:Java 提示用户输入与特定模式匹配的密码,java,Java,我已经写了一些代码,但我似乎不知道如何获得字符、数字或符号的确切数量。我修正了我的代码一点,但它不工作,我不知道为什么 我的要求是 编写一个Java程序,提示用户输入与特定模式匹配的密码。您的程序必须批准用户的输入。。以下是模式,顺序如下: 我的代码: import java.util.Scanner; public class TestingCenter { public static void main(String[] args) { int digit=0; int s
import java.util.Scanner;
public class TestingCenter {
public static void main(String[] args) {
int digit=0;
int special=0;
int upCount=0;
int upCount2=0;
int loCount=0;
String password;
Scanner scan = new Scanner(System.in);
System.out.println(" Enter Your Password:");
password = scan.nextLine();
for(int i =0;i<password.length();i++){
char c = password.charAt(i);
if(Character.isUpperCase(c)){
upCount++;
}
if(Character.isLowerCase(c)){
loCount++;
}
if(Character.isDigit(c)){
digit++;
}
if(Character.isUpperCase(c)){
upCount2++;
}
if(c>=33&&c<=46||c==64){
special++;
}
}
if(special==2&&loCount==2&&upCount>=1&&(digit==1||digit==2)&&upCount2<=1){
System.out.println(" Password is good:");
}
}
}
import java.util.Scanner;
公共类考试中心{
公共静态void main(字符串[]args){
整数位数=0;
int-special=0;
int-upCount=0;
int upCount2=0;
int loCount=0;
字符串密码;
扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入密码:”);
密码=scan.nextLine();
对于(int i=0;i=33&&c=1&&(digit==1 | | digit==2)&&upCount2,如果我理解正确,按此顺序字面意思是按给定顺序
如果是这样的话,你需要正则表达式。忘记计数字符
- 一个或多个大写字母
[A-Z]+
- 两个小写字母
[a-z]{2}
- 1或2位数字
\d{1,2}
- 零个或1个大写字母
[A-Z]?
- 此组中的任意两个@#$%^&
[@#$%^&]{2}
所以
如果这不是你的指令的意思,那么检查一下你的条件。显然不是所有的东西都应该是=1
指令的哪一部分要求你计算任何东西?“1或2位数”:digit>=1
真的捕捉到了吗?与“这组中的任何两个@$%^&“两个小写字母”相同“两个或多个小写字母”或“正好两个小写字母”?正好两个小写字母1或多个大写字母…零个或一个大写字母…那么,正好一个?我认为“这组中的任意两个@#$%^&”表示没有指定重复。相同字符中的两个被视为“任意两个”“也许吧,但从说明书上看还不清楚这意味着什么,所以我认为迈克尔需要澄清这一点。
import java.util.Scanner;
public class TestingCenter {
public static void main(String[] args) {
int digit=0;
int special=0;
int upCount=0;
int upCount2=0;
int loCount=0;
String password;
Scanner scan = new Scanner(System.in);
System.out.println(" Enter Your Password:");
password = scan.nextLine();
for(int i =0;i<password.length();i++){
char c = password.charAt(i);
if(Character.isUpperCase(c)){
upCount++;
}
if(Character.isLowerCase(c)){
loCount++;
}
if(Character.isDigit(c)){
digit++;
}
if(Character.isUpperCase(c)){
upCount2++;
}
if(c>=33&&c<=46||c==64){
special++;
}
}
if(special==2&&loCount==2&&upCount>=1&&(digit==1||digit==2)&&upCount2<=1){
System.out.println(" Password is good:");
}
}
}
Scanner scan = new Scanner(System.in);
System.out.println(" Enter Your Password:");
String password = scan.nextLine();
System.out.println(password.matches("[A-Z]+[a-z]{2}\\d{1,2}[A-Z]?[@#$%^&]{2}");