Java课后习题——校验密码
2016-02-04 11:34
771 查看
博客网站设定了校验密码的规则,编写方法检验一个字符串是否是合法的密码。
规则如下:
1) 密码长度在 8-16 之间
2)密码只能包含字母和数字
3) 密码必须存在至少 2 个数字
如果用户输入的密码符合规则就显示 valid password,否则提示 Invalid password。密码符合规则就显示 valid password,否则提示 Invalid password。
方法一:(普通的做法,使用Character类中的方法)
方法二:(使用正则表达式)
在使用正则表达式做这个题时发现import java.util.*;还不能包含Pattern类,必须import java.util.regex.Pattern; 或者 import java.util.regex.*;
后来上网查询发现,*只表示包含当前目录,不包含子目录下的class文件。
规则如下:
1) 密码长度在 8-16 之间
2)密码只能包含字母和数字
3) 密码必须存在至少 2 个数字
如果用户输入的密码符合规则就显示 valid password,否则提示 Invalid password。密码符合规则就显示 valid password,否则提示 Invalid password。
方法一:(普通的做法,使用Character类中的方法)
class Test{ public static int numberCount(String s) {//检测该密码有几位数字 int count=0; for(int i=0;i<s.length();i++) { if(Character.isDigit(s.charAt(i))) count++; } return count; } public static boolean testWord(String s) {//判断该密码是否仅有字母和数字组成 boolean password=false; for(int i=0;i<s.length();i++) { if(Character.isDigit(s.charAt(i)) || Character.isLetter(s.charAt(i))) password=true; else { password=false; break; } } return password; } public static void testPassword(String s) {//校验密码是否符合规则 if(numberCount(s)>=2 && s.length()>=8 && s.length()<=16 && testWord(s)) System.out.println("valid password"); else System.out.println("Invalid password"); } } public class TestPassword { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入密码:"); String password = input.nextLine(); Test t=new Test(); t.testPassword(password); } }
方法二:(使用正则表达式)
在使用正则表达式做这个题时发现import java.util.*;还不能包含Pattern类,必须import java.util.regex.Pattern; 或者 import java.util.regex.*;
后来上网查询发现,*只表示包含当前目录,不包含子目录下的class文件。
import java.util.regex.Pattern; import java.util.Scanner; public class Password{ public static void main(String[] args) { String str_1="[a-zA-Z0-9]{8,16}"; //密码只能包含字母和数字,密码长度在 8-16 之间 String str_2=".*\\d.*\\d.*"; //密码必须存在至少 2 个数字 Scanner input=new Scanner(System.in); System.out.println("请输入密码:"); String password=input.nextLine(); if(Pattern.matches(str_1,password)&&Pattern.matches(str_2,password)) { System.out.println("valid password"); } else { System.out.println("Invalid password"); } } }
相关文章推荐
- java代理
- java 显示目录下全部文件
- POPSpring动画参数详解
- java 异步调用
- Eclipse调试Android工具-adb命令大全(二)
- Eclipse调试Android工具-adb命令大全(一)
- MyEclipse 2015优化技巧
- 优化Myeclipse启动速度
- MyEclipse2014 优化设置
- 深入理解java垃圾回收机制
- Spring整合SpringMVC
- DDOs攻击-Java实现
- JPA学习笔记-Spring整合JPA
- Spring Data学习笔记-查询方法
- Spring Data学习笔记-Hello world
- Java Map和Bean之前的转换
- Java文件下载
- Java读取excel工资单发送邮件
- 深入理解java垃圾回收机制
- Java新手问题集锦