package com.hello.string; import java.util.Random; import java.util.Scanner; public class StringDemo { /*目标:String常用的api,字符串的内容比较 1、如果是字符串比较应当使用String提供的equlas方法,只关心内容一样就返回true 2、基本数据类型比较时就可以使用==比较数据 */ public static void main(String[] args) { /*String案例一: String类开发验证码功能:随机产生一个5位的验证码,每位可能是数字、大写字母、小写字母 分析:1、定义一个string类型的变量存储a-zA-Z0-9之间的全部字符;2、循环5次,随机一个范围内的索引,获取对应字符连接起来即可 */ //定义可能出现的字符信息 String datas = "abcdefghijklnmopqrstuvwxyzABCDEFGHIJKLNMOPQRSTUVWXYZ0123456789"; String code = ""; Random r = new Random(); for (int i = 0; i < 5; i++) { //随机一个索引 int index = r.nextInt(datas.length()); char c1 = datas.charAt(index);//String.charAt() 方法返回指定索引处的char值 code +=c1; } System.out.println(code); /* String案例二:模拟用户登录功能,最多只给三次机会 分析:1、系统后台定义好正确的登录名称、密码;2、使用循环控制3次,让用户输入正确的登录名和密码,判断是否登录成功,登录成功则不再进行登录;登录失败给出提示,并让用户继续登录 */ String okLoginName = "admin"; String okPassword1 = "123456"; //定义一个循环,循环3次,让用户登录 Scanner sc1 = new Scanner(System.in); for (int i = 0; i < 3; i++) { System.out.println("请您输入登录名称"); String loginName = sc1.next(); System.out.println("请您输入登录密码"); String password = sc1.next(); //判断登录是否成功 if(okLoginName.equals(loginName)){ //判断密码是否正确 if(okPassword1.equals(password)){ System.out.println("登录成功"); break; }else { //密码错误了 System.out.println("您的密码不正确,您还有"+(3-i)+"次机会登录"); } }else { System.out.println("登录名称错误了,您还有"+(3-i)+"次机会登录"); } } String data = "我爱祖国"; System.out.println(data.length());//获取字符串的长度 char c = data.charAt(1);//获取某个索引位置处的字符:爱 System.out.println(c); System.out.println("------遍历字符中的每个字符--------"); for (int i = 0; i < data.length(); i++) { char ch = data.charAt(i); System.out.println(ch); } String rs = data.substring(0,4);//截取,包前不包后:我爱祖国 System.out.println(rs); String rs1 = data.substring(2);//截取,从当前索引一直截取到末尾 System.out.println(rs1); String rs2 = data.replace("祖国","中国");//replace替换字符 System.out.println(rs2); System.out.println(data.contains("祖国"));//contain包含,结果是true //1、正确登录名和密码 String okName = "李白"; String okPassword = "123456"; //2、请您输入登录名称和密码 Scanner sc = new Scanner(System.in); System.out.println("登录名称;"); String name = sc.next(); System.out.println("登录密码:"); String password = sc.next(); //3、判断用户输入的登录名称和密码与正确的内容是否相等 if(okName.equals(name) && okPassword.equals(password)){ System.out.println("登录成功"); }else { System.out.println("用户名或密码错误了"); } //4、忽略大小写比较内容的api:一般用于比较验证码这样的业务逻辑 String sysCode = "23AdFh"; String code1 = "23aDfH"; System.out.println(sysCode.equals(code1));//false System.out.println(sysCode.equalsIgnoreCase(code1)); } }