【JAVA基础】String类常用API

91 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第9天,点击查看活动详情

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



    }