利用str.equals(str1) 实现小案例账号密码登录校验 利用str.equalsIgnoreCase(str1)实现验证码忽略大小写登录验证
package com.heima.StringDemo; import java.util.Random; import java.util.Scanner; //模拟登录验证 public class StrApi { public static void main(String[] args) { String name = "张三"; String password = "123456"; String code=""; while (true) { Scanner sc = new Scanner(System.in); System.out.println("请输入用户名账号"); //获取us String us = sc.next(); System.out.println("请输入用户名密码"); //获取ps String ps = sc.next(); //随机生成验证码 code=Verification(5); System.out.println("请输入验证码"+code); String newCode=sc.next(); //str.equals(str1) 比较两个字符串的值是否相同; //str.equalsIgnoreCase() 比较两个字符串的值是否相同 忽略大小写; //验证码正确 if (code.equalsIgnoreCase(newCode)) { //账号密码正确 if(name.equals(us) && password.equals(ps)){ System.out.println("登录成功"); break; }else{ System.out.println("账号密码错误,请重新输入"); } } else { System.out.println("验证码错误,请重新输入"); } } } public static String Verification(int n) { Random r = new Random(); //存储Str String code = ""; //随机生成n为啥的验证码 验证码 由 大写字母 小写字母 数字组成 for (int i = 0; i < n; i++) { //随机大 小写 数字 int a = r.nextInt(3); //switch 判断选择生成 switch (a) { //生成数字 case 0: code += r.nextInt(10); break; //生成大写字母 在ASCLL码中范围 65-90 在强制转换成字符 case 1: code += (char) (r.nextInt(25) + 65); break; //生成小写字母 在ASCLL码中范围 97-122 case 2: code += (char) (r.nextInt(25) + 97); break; } } return code; } }
常用API方法
package com.heima.StringDemo; public class StrApi1 { public static void main(String[] args) { //1 public int length(): 获取字符串的长度; 简单记:str.length(); String name="我爱你中国love"; System.out.println(name.length());//9 //2 public char charAt(int index);获取某个位子索引出的字符 str.charAt(index);(查找str指定索引位子的字符) System.out.println(name.charAt(1));;//爱 //遍历字符串中的每个字符 for (int i=0;i<name.length();i++){ char r=name.charAt(i); System.out.println(r); } //3 public char[] toCharArray() ;把字符串转换成字符串数组(不改变原有字符串) char[] chars=name.toCharArray(); System.out.println(chars.length);//9 System.out.println(name); //4 public String substring(int beginIndex,int endIndex);截取字符串 截前不截后 String name1=name.substring(0,3); System.out.println(name1);//我爱你 //5 public String substring(int beginIndex); 从当前一直截取到末尾 String name2=name.substring(4); System.out.println(name2);//国love //6 public String replace( CharSequence target,CharSequence replacement ); str.replace(oldStr,newStr) String name3="金三胖最厉害的80后,金三胖棒棒的!"; String s1=name3.replace("金三胖","***"); System.out.println(s1); //7 public boolean contains(CharSequence s); 判断字符串中是否包含指定的字符串 str.contains(str1); true 包含 false 不包含 System.out.println(name3.contains("金三胖"));//true; System.out.println(name3.contains("金二胖"));//false; //8 public boolean startsWith(String prefix); 判断 字符串是否以什么开始 System.out.println(name3.startsWith("金三胖"));//true System.out.println(name3.startsWith("金二胖"));//false //9 public String[] split(String s): 按照某个内容把字符串分割成某个数组返回 String name4="王宝强,贾乃亮,陈羽凡"; String [] s2=name4.split(","); for (int i = 0; i < s2.length; i++) { System.out.println(s2[i]); } } }