【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);
    }
相关文章
|
6天前
|
Java 编译器
Java——类与对象(继承和多态)
本文介绍了面向对象编程中的继承概念,包括如何避免重复代码、构造方法的调用规则、成员变量的访问以及权限修饰符的使用。文中详细解释了继承与组合的区别,并探讨了多态的概念,包括向上转型、向下转型和方法的重写。此外,还讨论了静态绑定和动态绑定的区别,以及多态带来的优势和弊端。
20 9
Java——类与对象(继承和多态)
|
6天前
|
SQL Java 编译器
Java——类与对象(封装)
封装是面向对象编程中的概念,指将数据(属性)和相关操作(方法)组合成独立单元(类),使外部无法直接访问对象的内部状态,只能通过提供的方法进行交互,从而保护数据安全。例如,手机将各种组件封装起来,只暴露必要的接口供外部使用。实现封装时,使用`private`关键字修饰成员变量,并提供`get`和`set`方法进行访问和修改。此外,介绍了包的概念、导入包的方式及其注意事项,以及`static`关键字的使用,包括静态变量和方法的初始化与代码块的加载顺序。
18 10
Java——类与对象(封装)
|
6天前
|
Java C语言
Java——类与对象
这段内容介绍了Java中的类和对象、`this`关键字及构造方法的基本概念。类是对现实世界事物的抽象描述,包含属性和方法;对象是类的实例,通过`new`关键字创建。`this`关键字用于区分成员变量和局部变量,构造方法用于初始化对象。此外,还介绍了标准JavaBean的要求和生成方法。
18 9
Java——类与对象
|
6天前
|
安全 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版)
|
5天前
|
存储 安全 Java
Java——String类详解
String 是 Java 中的一个类,用于表示字符串,属于引用数据类型。字符串可以通过多种方式定义,如直接赋值、创建对象、传入 char 或 byte 类型数组。直接赋值会将字符串存储在串池中,复用相同的字符串以节省内存。String 类提供了丰富的方法,如比较(equals() 和 compareTo())、查找(charAt() 和 indexOf())、转换(valueOf() 和 format())、拆分(split())和截取(substring())。此外,还介绍了 StringBuilder 和 StringJoiner 类,前者用于高效拼接字符串,后者用于按指定格式拼接字符串
11 1
Java——String类详解
|
2天前
|
安全 Java
Java StringBuffer 和 StringBuilder 类详解
在 Java 中,`StringBuffer` 和 `StringBuilder` 用于操作可变字符串,支持拼接、插入、删除等功能。两者的主要区别在于线程安全性和性能:`StringBuffer` 线程安全但较慢,适用于多线程环境;`StringBuilder` 非线程安全但更快,适合单线程环境。选择合适的类取决于具体的应用场景和性能需求。通常,在不需要线程安全的情况下,推荐使用 `StringBuilder` 以获得更好的性能。
|
2天前
|
Java 开发者
Java Character 类详解
Java中的`Character`类是`java.lang`包的一部分,用于将基本类型`char`封装为对象,并提供了丰富的静态方法来处理字符,如类型判断、大小写转换等。
|
2天前
|
Java 索引
Java String 类详解
Java 中的 `String` 类用于表示不可变的字符序列,是 Java 标准库 `java.lang` 包的一部分。字符串对象一旦创建,其内容不可更改,修改会生成新对象。
|
6天前
|
Java
Java Character 类详解
`Character` 类是 Java 中的一个封装类,位于 `java.lang` 包中,主要用于处理单个字符。它是一个最终类,提供了多种静态方法来检查和操作字符属性,如判断字符是否为字母、数字或空格,以及转换字符的大小写等。此外,`Character` 类还支持自动装箱和拆箱,简化了 `char` 和 `Character` 之间的转换。以下是一些示例代码,展示了如何使用 `Character` 类的方法来检查字符属性和执行字符转换。掌握 `Character` 类的用法有助于更高效地处理字符数据。
|
6天前
|
Java
Java Number & Math 类详解
在 Java 中,`Number` 类和 `Math` 类是处理数字和数学运算的重要工具。