• Java String 类


    在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。字符串一旦被初始化就不可以被改变。

    创建字符串

    class StringDemo {
        public static void main(String[] args) {
            String s1 = "abc";//s1是一个类类型变量, "abc"是一个对象。
            String s2 = new String("abc");
            //s1和s2有什么区别?
            //s1在内存中有一个对象。
            //s2在内存中有两个对象。
            System.out.println(s1 == s2);
            System.out.println(s1.equals(s2));//String类复写了Object类中equals方法,
            //该方法用于判断字符串是否相同。
        }
    }
    

    运行结果:
    false
    true

    常见的操作

    1. 获取。
        1.1 字符串中的包含的字符数,也就是字符串的长度。
            int length():获取长度。
            
        1.2 根据位置获取位置上某个字符。
            char charAt(int index):
            
        1.3 根据字符获取该字符在字符串中位置。
            int indexOf(int ch):返回的是ch在字符串中第一次出现的位置。
            int indexOf(int ch, int fromIndex) :从fromIndex指定位置开始,获取ch在字符串中出现的位置。
            int indexOf(String str):返回的是str在字符串中第一次出现的位置。
            int indexOf(String str, int fromIndex) :从fromIndex指定位置开始,获取str在字符串中出现的位置。
            int lastIndexOf(int ch) :
    
    2. 判断。
        2.1 字符串中是否包含某一个子串。
            boolean contains(str):
            特殊之处:indexOf(str):可以索引str第一次出现位置,如果返回-1.表示该str不在字符串中存在。
            所以,也可以用于对指定判断是否包含。
            if(str.indexOf("aa")!=-1)
            而且该方法即可以判断,有可以获取出现的位置。
            
        2.2 字符中是否有内容。
            boolean isEmpty(): 原理就是判断长度是否为0.
            
        2.3 字符串是否是以指定内容开头。
            boolean startsWith(str);
            
        2.4 字符串是否是以指定内容结尾。
            boolean endsWith(str);
        
        2.5 判断字符串内容是否相同。复写了Object类中的equals方法。
            boolean equals(str);
        
        2.6 判断内容是否相同,并忽略大小写。
            boolean equalsIgnoreCase();
    
    3,转换。
        3.1 将字符数组转成字符串。
            构造函数:String(char[])
            String(char[],offset,count):将字符数组中的一部分转成字符串。
    
            静态方法:
            static String copyValueOf(char[]);
            static String copyValueOf(char[] data, int offset, int count)
            static String valueOf(char[]):
            char[] toCharArray():
    
        3.3 将字节数组转成字符串。
            String(byte[])
            String(byte[],offset,count):将字节数组中的一部分转成字符串。
    
        3.4 将字符串转成字节数组。
            byte[]  getBytes():
            
        3.5 将基本数据类型转成字符串。
            static String valueOf(int)
            static String valueOf(double)
            特殊:字符串和字节数组在转换过程中,是可以指定编码表的。
            
    4,替换
            String replace(oldchar,newchar);
    5,切割
            String[] split(regex);
    
    6,子串。获取字符串中的一部分。
        String substring(begin);
        String substring(begin,end);
    
    7,转换,去除空格,比较。
        7.1 将字符串转成大写或则小写。
            String toUpperCase();
            String toLowerCase();
    
        7.2 将字符串两端的多个空格去除。
            String trim();
    
        7.3 对两个字符串进行自然顺序的比较。
            int compareTo(string);
    
    class StringMethodDemo {
        public static void main(String[] args) {
            String str = "abcdeakpF";
            //长度
            sop(str.length());//9
            //根据索引获取字符。
            sop(str.charAt(4));//e;当访问到字符串中不存在的角标时会发生StringIndexOutOfBoundsException。
            //根据字符获取索引
            sop(str.indexOf('m', 3));//-1;如果没有找到,返回-1.
            //反向索引一个字符出现位置。
            sop(str.lastIndexOf("a"));//5
            //转换为小写字母
            sop(str.toLowerCase());//abcdeakpf
            //转换为大写字母
            sop(str.toUpperCase());//ABCDEAKPF
            //判断字符串中是否包含"a"
            sop(str.contains("a"));//true
            sop(str.substring(2));//cdeakpF;从指定位置开始到结尾。如果角标不存在,会出现字符串角标越界异常。
            sop(str.substring(2, 4));//cd;包含头,不包含尾。s.substring(0,s.length());
            //如果要替换的字符不存在,返回的还是原串。
            sop(str.replace('p','n'));//abcdeaknF
    
    
            String s = "  zhagnsa,lisi,wangwu  ";
            sop(s.trim());//"zhagnsa,lisi,wangwu"
            //通过“,”分割数组
            String[] arr = s.split(",");
            for (int x = 0; x < arr.length; x++) {
                sop(arr[x]);//zhagnsa lisi  wangwu
            }
    
            String x = "ArrayDemo.java";
            //判断文件名称是否是Array单词开头。
            sop(x.startsWith("Array"));//true
            //判断文件名称是否是.java的文件。
            sop(x.endsWith(".java"));//true
            //判断文件中是否包含Demo
            sop(x.contains(".java"));//true
    
            String s1 = "aac";
            String s2 = "adg";
            sop(s1.compareTo(s2));//-3;a(97)-d(100)= -3
        }
    
        public static void sop(Object obj) {
            System.out.println(obj);
        }
    }
    
    
  • 相关阅读:
    第04组 Beta冲刺 (2/5)
    第04组 Beta冲刺 (1/6)
    第04组 Alpha冲刺 总结
    二叉树的递归与非递归
    各类典例模板
    选择题合辑2
    运算符重载
    链表题目
    集合的模拟实现(类模板)
    2018Final静态成员(黑名单)
  • 原文地址:https://www.cnblogs.com/hen-java/p/12602209.html
Copyright © 2020-2023  润新知