首页 > 代码库 > Java 字符串 (常用)

Java 字符串 (常用)

字符串
    概念
        String s1 = "abc";    //s1是一个类类型变量,"abc"是一个对象
                    //字符串最大特点,一旦被初始化就不能被改变,再次赋值是指新new一个对象
                    //在内存中有一个对象
        String s2 = new String("abc");    //在内存中有两个对象
        s1 == s2         //false //判断的是地址
        s1.equals(s2)    //true     //判断的是值 //String重新定义.equals()方法
                                //(equals()在其他地方判断的是地址)
        String s3 = "abc";
        s1 == s3;        //true    //因为在前面已经定义好了s1="abc"常量,所以s3指向s1所定义的"abc"以节省空间
    方法
        获取
            int length()  //获取长度,返回int
            char charAt(int index)    //根据位置返回位置上某字符
            int indexOf(int ch)    //返回ch(ASCII码)第一次出现ch的位置,若无则返回 -1
            int indexOf(int ch, int fromIndex)    //从 fromIndex指定位置开始,第一次出现ch的位置
            int indexOf(String str)        //返回str在字符串中第一次出现的位置
            int indexOf(String str, int fromIndex)        //指定位置开始第一次出现的位置
            int lastIndexOf(int ch)        //返回ch在字符串中最后一次出现的位置
        判断
            boolean contains(str)    //判断字符串中是否包含某子串
                int indexOf(str)    //返回str第一次出现的位置,若无返回-1
            boolean isEmpty()    //判断字符长度是否为0
            boolean startsWith(str)    //判断字符串是否以str开头
            boolean endWith(str)    //判断字符串是否以str结尾
            boolean equals(str)        //判断字符串内容是否相同,复写了Object类中的equals方法
            boolean equalsIgnoreCase()    //判断内容是否相同,忽略大小写
            对字符串进行自然顺序的比较
                int compareTo(string);    //相同返回0,不同返回第一个不同值的(ASCII码)的差距
        转换
            static String valueOf(char[])    //将字符数组转换成字符串
            static String valueOf(int)          //将基本类型转换为字符串,等同于 3+"";
            String toUpperCase();    //字符串转换为大写
            String toLowerCase();    //字符串转换为小写
            byte[] getBytes()    //将字符串转换为字节数组
        替换:
            String replace(oldchar,newchar)        //返回新字符串
        切割
            String[] split(regex);    //将字符串以regex为分割点分割,返回字符串数组子串,获取字符串中的一部分
            String substring(begin);   //从指定位置开始到结尾,如果角标不存在,会出现字符串越界
            String substring(begin,end);    //包含头,不包含尾
        去除两端空格
            String trim();
字符串缓冲区StringBuffer
        //JDK1.5后出现 StringBuilder
            StringBuffer     //线程同步 ,安全性高
            StringBuilder     //线程不同步,效率高,单线程推荐
    特点
        长度是可变的
        最终会通过toString方法变成字符串
        可以直接操作多个数据类型
        StringBuffer sb = new StringBuffer();    //定义对象
        StringBuilder sb = new StringBuilder();    //定义对象
    方法
        增加
            sb.append(abc);     //将数据添加至已有数据末尾
            sb.insert(1,"qq");    //将数据插入到指定位置(第一个参数)
                StringBuffer sb = new StringBuffer("aaaaaaa");
                sb.insert(3, bbb);                   //将字符串变为aaaabbbaaa
                sb.append(x) == sb.insert(sb.length(), x)
        删除
            sb.delete(start, end)    //删除缓冲区中的数据,包含start,不包含end
            sb.deleteCharAt(index);    //删除指定位置的字符
        获取
            char charAt(int index)    //获取指定位置字符
            int indexOf(String str)    //返回指定字符串第一次出现的位置
            int lastIndexOf(String str)    //返回指定字符串最后一次出现的位置
            int length();        //返回字符串长度
            String substring(int start, int end)    //返回开始角标到结束角标之间的字符串
        修改
            sb.replace(start,end,string);    //将开始位置到结束位置之间的值替换为string
            sb.setCharAt(int index,char ch);    //将index位置的字符替换为ch
        反转
            sb.reverse();
        将缓冲区中指定数据储存到指定数组中
            sb.getChars(1,3,char[] chs,4);    //将缓冲区中角标为 1和2的数据储存到数组chs中,在数组中角标为4开始储存
        输出
                System.out.println(sb.toString);    //输出前需要先转化为String类型
StringBuilder  sb    //一个可变的字符序列。
    方法
        增加
            StringBuilder append(Object obj)    //追加 Object 参数的字符串表示形式。
            StringBuilder insert(int offset, Object obj)     将 Object 参数的字符串表示形式插入此字符序列中。
        删除
            StringBuilder deleteCharAt(int index)       //移除此序列指定位置上的 char。
        修改
            void ensureCapacity(int minimumCapacity)     // 确保容量至少等于指定的最小值。
            StringBuilder reverse()            //反转
            void setCharAt(int index, char ch)       //将给定索引处的字符设置为 ch。
        查询
            int capacity()   //返回当前容量。
            char charAt(int index)       //返回此序列中指定索引处的 char 值。
            StringBuilder delete(int start, int end)      //移除此序列的子字符串中的字符。
            int indexOf(String str)      // 返回第一次出现的指定子字符串在该字符串中的索引。
            int length()      // 返回长度(字符数)。
            String substring(int start)         //返回一个新的 String,它包含此字符序列当前所包含字符的子序列。

Java 字符串 (常用)