【JAVA基础】String类常用API

简介: 1.String类常用API-遍历、替换、截取、分割操作2.综合案例 2.模拟用户登录功能3.手机号码屏蔽

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);
    }
相关文章
|
2月前
|
Java 索引
java基础(13)String类
本文介绍了Java中String类的多种操作方法,包括字符串拼接、获取长度、去除空格、替换、截取、分割、比较和查找字符等。
36 0
java基础(13)String类
|
10天前
|
Java API 数据处理
探索Java中的Lambda表达式与Stream API
【10月更文挑战第22天】 在Java编程中,Lambda表达式和Stream API是两个强大的功能,它们极大地简化了代码的编写和提高了开发效率。本文将深入探讨这两个概念的基本用法、优势以及在实际项目中的应用案例,帮助读者更好地理解和运用这些现代Java特性。
|
29天前
|
分布式计算 Java 大数据
大数据-147 Apache Kudu 常用 Java API 增删改查
大数据-147 Apache Kudu 常用 Java API 增删改查
25 1
|
2月前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
|
2月前
|
安全 Java API
时间日期API(Date,SimpleDateFormat,Calendar)+java8新增日期API (LocalTime,LocalDate,LocalDateTime)
这篇文章介绍了Java中处理日期和时间的API,包括旧的日期API(Date、SimpleDateFormat、Calendar)和Java 8引入的新日期API(LocalTime、LocalDate、LocalDateTime)。文章详细解释了这些类/接口的方法和用途,并通过代码示例展示了如何使用它们。此外,还讨论了新旧API的区别,新API的不可变性和线程安全性,以及它们提供的操作日期时间的灵活性和简洁性。
|
2月前
|
Java 程序员 API
Java 8新特性之Lambda表达式与Stream API的探索
【9月更文挑战第24天】本文将深入浅出地介绍Java 8中的重要新特性——Lambda表达式和Stream API,通过实例解析其语法、用法及背后的设计哲学。我们将一探究竟,看看这些新特性如何让Java代码变得更加简洁、易读且富有表现力,同时提升程序的性能和开发效率。
|
2月前
|
Java
flyway报错Caused by: java.lang.NoSuchMethodError: org.flywaydb.core.api.configuration.FluentConfigurat
flyway报错Caused by: java.lang.NoSuchMethodError: org.flywaydb.core.api.configuration.FluentConfigurat
35 2
|
1月前
|
缓存 前端开发 Java
Java中的RESTful API原则
总结而言,遵循RESTful原则不仅能够提升API的互操作性,还便于维护和扩展,是构建现代Web服务的重要实践。通过精心设计的URI、利用HTTP协议特性以及采用成熟框架如Spring Boot,Java开发者能够高效地创建出既强大又易于使用的RESTful API。
49 0
|
1月前
|
API
使用`System.Net.WebClient`类发送HTTP请求来调用阿里云短信API
使用`System.Net.WebClient`类发送HTTP请求来调用阿里云短信API
21 0
|
2月前
|
Java API 开发者
【Java字节码的掌控者】JDK 22类文件API:解锁Java深层次的奥秘,赋能开发者无限可能!
【9月更文挑战第8天】JDK 22类文件API的引入,为Java开发者们打开了一扇通往Java字节码操控新世界的大门。通过这个API,我们可以更加深入地理解Java程序的底层行为,实现更加高效、可靠和创新的Java应用。虽然目前它还处于预览版阶段,但我们已经可以预见其在未来Java开发中的重要地位。让我们共同期待Java字节码操控新篇章的到来,并积极探索类文件API带来的无限可能!