1.String类常用API-遍历、替换、截取、分割操作
String常用API
方法名 说明
public int length() 返回此字符串的长度
public char charAt(int index) 获取某个索引位置处的字符
public char[] toCharArray(): 将当前字符串转换成字符数组返回
public String substring(int beginIndex, int endIndex) 根据开始和结束索引进行截取,得到新的字符串(包前不包后)
public String substring(int beginIndex) 从传入的索引处截取,截取到末尾,得到新的字符串
public String replace(CharSequence target,
CharSequence replacement)
使用新值,将字符串中的旧值替换,得到新的字符串
public String[] split(String regex) 根据传入的规则切割字符串,得到字符串数组返回
public int length() 返回此字符串的长度
public char charAt(int index) 获取某个索引位置处的字符
public static void main(String[] args) { String name="热爱编程的小白白"; //返回此字符串的长度 System.out.println(name.length()); //获取某个索引位置处的字符 System.out.println(name.charAt(1)); System.out.println("---------------遍历字符串--------------------"); for (int i = 0; i < name.length(); i++) { System.out.println(name.charAt(i)); } }
public char[] toCharArray():将当前字符串转换成字符数组返回
public static void main(String[] args) { String name="热爱编程的小白白"; //将当前字符串转换成字符数组返回 char[] chars = name.toCharArray(); for (int i = 0; i < chars.length; i++) { System.out.println(chars[i]); } }
public String substring(int beginIndex, int endIndex)
根据开始和结束索引进行截取,得到新的字符串(包前不包后)
public static void main(String[] args) { String name="热爱编程的小白白"; //根据开始和结束索引进行截取,得到新的字符串(包前不包后) System.out.println("-------------------------------------"); System.out.println(name.substring(0, 2)); System.out.println("-------------------------------------"); System.out.println(name.substring(5, 8)); }
public String substring(int beginIndex)
从传入的索引处截取,截取到末尾,得到新的字符串
public static void main(String[] args) { String name="热爱编程的小白白"; //从传入的索引处截取,截取到末尾,得到新的字符串 System.out.println(name.substring(5)); }
public String replace(CharSequence target, CharSequence replacement)
使用新值,将字符串中的旧值替换,得到新的字符串
public static void main(String[] args) { String name="如果明天下雨,那么明天就不用上课了"; System.out.println("原来的字符串:"); System.out.println(name); System.out.println("----------------------------------"); //使用新值,将字符串中的旧值替换,得到新的字符串 System.out.println("替换后的的字符串:"); System.out.println(name.replace("明天", "后天")); }
public boolean contains(CharSequence s)
当且仅当此字符串包含指定的char值序列时才返回true。
public static void main(String[] args) { String name="如果明天下雨,那么明天就不用上课了"; System.out.println(name.contains("上课"));//true System.out.println(name.contains("那么"));//true System.out.println(name.contains("11"));//false }
public boolean startsWith(String prefix)
测试此字符串是否以指定的前缀开头
public static void main(String[] args) { String name="如果明天下雨,那么明天就不用上课了"; //测试此字符串是否以指定的前缀开头。 System.out.println(name.startsWith("如果"));//true System.out.println(name.startsWith("明天"));//false }
public String[] split(String regex)
根据传入的规则切割字符串,得到字符串数组返回
public static void main(String[] args) { String name="1,2,3,4,5,6,7,8,9"; String[] arr = name.split(","); for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } }
2.综合案例
1.String类开发验证码功能
需求:
随机产生一个 5 位的验证码,每位可能是数字、大写字母、小写字母。
分析:
① 定义一个 String 类型的变量存储验 a-zA-Z0-9 之间的全部字符。
② 循环 5 次,随机一个范围内的索引,获取对应字符连接起来即可。
public class base { public static void main(String[] args) { /** * 需求: * 随机产生一个5位的验证码,每位可能是数字、大写字母、小写字母。 * 分析: * ① 定义一个String类型的变量存储验a-zA-Z0-9之间的全部字符。 * ② 循环5次,随机一个范围内的索引,获取对应字符连接起来即可。 */ String datas="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; char[] array = datas.toCharArray(); Random random = new Random(); for (int i = 0; i <5 ; i++) { int index = random.nextInt(array.length); System.out.print(array[index]); } }
2.模拟用户登录功能
需求:
模拟用户登录功能,最多只给三次机会。
分析:
① 系统后台定义好正确的登录名称,密码。
② 使用循环控制三次,让用户输入正确的登录名和密码,判断是否登录成功,登
录成功则不再进行登录;登录失败给出提示,并让用户继续登录。
public static void main(String[] args) { /** * 需求: * 模拟用户登录功能,最多只给三次机会。 * 分析: * ① 系统后台定义好正确的登录名称,密码。 * ② 使用循环控制三次,让用户输入正确的登录名和密码,判断是否登录成功,登 * 录成功则不再进行登录;登录失败给出提示,并让用户继续登录。 */ String username="root"; String password="1234"; Scanner scanner = new Scanner(System.in); for (int j=3;j>0;j--) { System.out.println("请输入账号"); String userName = scanner.next(); System.out.println("请输入密码"); String passWord = scanner.next(); if (username.equals(userName)&&password.equals(passWord)){ System.out.println("登录成功"); break; } else System.out.println("登录失败,你还剩"+(j-1)+"次机会"); } }
3.手机号码屏蔽
需求
键盘录入一个手机号,将中间四位号码屏蔽,最终效果为:
分析
① 键盘录入一个字符串。
② 调用字符串对象的截取API,截取字符串前三位、后四位。
③ 将前三位 连接“****”然后继续连接后四位,输出最终结果即可。
public static void main(String[] args) { System.out.println("请输入手机号"); Scanner scanner = new Scanner(System.in); String phone_Number = scanner.next(); String number1 = phone_Number.substring(0, 3); String number2 = phone_Number.substring(7, 11); System.out.println(number1+"****"+number2); }