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));
}
}