美文网首页Android基础Java 基础
Java 常用类 05. Java String类

Java 常用类 05. Java String类

作者: yjtuuige | 来源:发表于2021-12-17 07:46 被阅读0次

    简介

    • 字符串是常量,不可变性,每次创建都会是一个新的对象;
    • 字符串字面值存储在字符串池中,可以共享;
    • String s = "Hello"; 产生一个对象,存储在字符串池中;
    • String s = new String("Hello"); 产生两个对象,堆、池各一个;

    常用方法

    方法 描述
    toCharArray() 将一个字符串变为字符数组
    charAt(int index) 从一个字符串中取出指定位置的字符
    length() 取得字符串的长度
    indexOf(String str) 从头开始查找指定的字符串首次出现的位置,找不到返回-1
    indexOf(String str,int fromIndex) 从指定位置开始查找指定的字符串首次出现的位置
    lastIndexOf(String str) 返回指定子字符串最后一次出现的字符串中的索引,没有会返回-1
    trim() 清除左右两端的空格
    substring(int beginIndex ) 从指定位置开始,一直取到尾进行字符串的截取
    substring(int begin,int end) 指定截取字符串的开始点和结束
    split(String regex) 按照指定的字符串进行拆分,返回一个字符串数组。(支持正则表达式)
    toUpperCase() 将一个字符串全部变为大写字母
    toLowerCase() 将一个字符串全部变为小写字母
    contains(CharSequence s) 判断字符串是否包含某个字符或字符串
    startsWith(String prefix) 判断是否以指定的字符串开头
    endsWith(String suffix) 判断是否以指定的字符串结尾
    equals(String str) 判断两个字符串内容是否相等
    equalsIgnoreCase(String str) 不区分大小写比较两个字符串是否相等
    replace(String oldString,String newString) 把旧的字符替换成新的字符
    replaceAll(String regex,String replacement) 字符串替换(支持正则表达式)
    • 实例:
    package com.base.demo04;
    
    import java.util.Arrays;
    
    public class Test06 {
        public static void main(String[] args) {
            // 常用字符串方法:
            String str = "Hello,world!";
            // 1.length(); 返回字符串的长度
            System.out.println(str.length());   // 12
            // 2.charAt(int index); 返回某个位置的字符
            System.out.println(str.charAt(str.length() - 1));   // ! 最后一个字符
            // 3.contains(String str);  判断是否包含某个字符串
            System.out.println(str.contains("Hello"));  // true
            // 4.toCharArray(); 返回字符串对应的数组 Arrays.toString 转换成单个字符
            System.out.println(str.toCharArray());  // Hello,world!
            System.out.println(Arrays.toString(str.toCharArray())); // [H, e, l, l, o, ,, w, o, r, l, d, !]
            System.out.println(str.indexOf("o"));   // 4
            System.out.println(str.indexOf("o", 5));   // 7  从第5个字符开始查找
            // 5.lastIndexOf(); 返回字符串最后一次出现的位置
            System.out.println(str.lastIndexOf("o"));   // 7
    
            String str2 = "     Hello world     ";
            // 6.trim(); 去除前、后端的空格
            System.out.println(str2.trim());    // Hello world
            // 7.toUpperCase(); 将字符串全部转成大写
            System.out.println(str2.toUpperCase()); //      HELLO WORLD
            // 8.toLowerCase(); 将字符串全部转换成小写
            System.out.println(str2.toLowerCase()); //      hello world
            // 9.endsWith(String str); 判断是否以字符串 str 结尾
            System.out.println(str.endsWith("wor"));    // false
            // 10.startsWith(String str); 判断是否以字符串 str 开头
            System.out.println(str.startsWith("He"));  // true
    
            String say = "java is   the,best  language";
            // 11.replace(char old, char new); 用新的字符或字符串替换旧的字符或字符串
            System.out.println(say.replace("java", "python"));  // python is   the,best  language
            // 12.split(); 对字符串拆分   " " 空格各拆分  "[ ,]+" 多个空格+逗号 拆分
            String[] arr = say.split("[ ,]+");
            // 遍历数组
            for (String s : arr) {
                System.out.println(s);
            }
            // 13. 补充 equals(),compareTo();比较大小
            String s1 = "hello";
            String s2 = "HELLO";
            System.out.println(s1.equalsIgnoreCase(s2));    // true 忽略大小写比较
            String s3="abc";    // a->97
            String s4="xyzdfsf"; // x->120
            // 14.compareTo(); 两字符不同时比较字符字典序的ascii码
            // 字符相同时比较长度 返回差值
            System.out.println(s3.compareTo(s4));   // -23 第一个不同字符的差值
        }
    }
    
    • 运行结果
    • 实例
    package com.base.demo04;
    
    /*
    需求:
        1.已知 String str = "this is a text";
        2.将 str 中的单词单独获取
        3.将 str 中的 text 替换成 practice
        4.在 text 前面插入一个 easy
        5.将每个单词的首字母改为大写
    */
    public class Test07 {
        public static void main(String[] args) {
            String str = "this is a text";
            // 1.将 str 中的单词单独获取
            String[] arr = str.split(" ");
            for (String s : arr) {
                System.out.println(s);
            }
            // 2.将 str 中的 text 替换成 practice
            String str2 = str.replace("text", "practice");
            System.out.println(str2);
            // 3.在 text 前面插入一个 easy
            String str3 = str.replace("text", "easy text");
            System.out.println(str3);
            // 4.将每个单词的首字母改为大写
            for (int i = 0; i < arr.length; i++) {
                char first = arr[i].charAt(0);
                char upperFirst = Character.toUpperCase(first);
                // substring(); 从指定位置开始,一直取到尾进行字符串的截取
                String news = upperFirst + arr[i].substring(1);
                System.out.println(news);
            }
    
        }
    }
    

    总结

    • 使用 String 类中的方法能够对字符串相关操作,在一定程度上,更方便快捷。
    • 存在一定的缺点,如在对一个字符串进行频繁修改时,在效率上极低。
    • 为弥补上述缺点,可使用 StringBufferStringBuilder 进行相关操作。
    • 所写的 String 类方法只是部分内容,更多内容,可 查询 API 文档

    相关文章

      网友评论

        本文标题:Java 常用类 05. Java String类

        本文链接:https://www.haomeiwen.com/subject/kmiefrtx.html