A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© zhoubinjian 金牌黑马   /  2016-4-7 02:03  /  406 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 zhoubinjian 于 2016-4-10 15:41 编辑

String:

String s1= "abc";//s1是一个类类型变量,“abc”是一个对象。
字符串最大特点:一旦被初始化就不可以被改变。

String s2= new Srting("abc");
s1和s2的区别 是:s1在内存中有一个对象,s2在内存上有两个对象

1.获取:
        1.字符串中包含的字符数,也就是字符串的长度。
                int length()  获取长度
        2.根据位置获取某个位置上的字符。(位置超出,返回-1)
                char charAt(int index)
        3.根据字符获取该字符在字符串中的位置。
                int indexof(int ch) 返回的是ch在字符串中第一次出现的位置
                int indexof(int ch,int fromIndex)  从fromIndex指定位置

开始,获取ch在字符串中现在的位置。
                int indexof(Srting str) 返回的是str在字符串中第一次出现

的位置。
                int indexof(Srting str,int fromIndex) 从fromIndex指定

位置开始,获取str在字符串中出现 的位置。
                int lastIndexof(int ch)反向查找,角标还是从第一个开始 算

2.判断
        1.字符串中是否包含某一个子串。
                boolean contains(str)
        2.字符串中是否是内容。
                boolean isEmpty() 判断长度是是否为0
        3.字符串是否以指定内容开头。
                boolean startsWith(str)
        4.字符串是否是以指定内容结尾。
                boolean endsWith(str)
        5.判断字符串中内容是否相同 ,复写了Object类中的equals方法。
                boolean equals(str)
        6.判断内容是否相同,并忽略大小写。
                boolean equalsIgnoreCase()

3.转换
        1.将字符数组转成字符串
                构造函数:Srting(char[])
                          Srting(char[],offset,count) 将字符数组中的一                                部分转成字符串;
                静态方法:static Srting copyValueOf(char[])
                          static Srting copyValueOf(char[] date,int                                 offset,int count)
        2.将字符串转成字符数组
                char[] toCharArray()

        3.将字节数组转成字符串
                Srting(byte[])
                Srting(byte[],offset,count) 将字节数组中的一部分转成字符                                串;
        4.将字符串转成字节数组
                byte[] getBytes()

        5.将基本数据类型转成字符串。
                          static Srting ValueOf(int)
                          static Srting ValueOf(double)

                特殊:字符串和字节数组在转换过程中上,是可以指定编码表的
                        
4.替换
        String replace(oldchar,new char) 如果要替换的字符不存在,返回来        的还是原串。

5.切割
        String[] split(regex) regex是切割的标记(小心切字符串时,开头就是        切割的标记,如果这样切的话会生成两个字符串,其中一个是空字符串)

6.子串
        获取字符串的一部分。
        String substring(begin)  从指定位置到结尾,如果角标不存在,会出现                                角标越界异常
        String substring(begin,end) 包含头,不包含尾,如下:
                                        String s="abcdef";
                                        s.substring(2,4);
                                        结果:cd

7.转换,去除空格,比较
        1.将字符串转成大写或小写
                String toUpperCase()
                String toLowerCase()

        2.将字符串两端的多个空格去除
                String trim()
        3.对两个字符串进行自然顺序的比较
                int compareTo(string)


StringBuffer是字符串缓冲区;是一个容器,
1.长度是可以变化的;
2.可以直接操作多个数据类型。
3.最终会通过toString方法变成字符串

C create U update R read D delete

1.存储
        StringBuffer append() 将指定的数据为参数添加到已有数据结尾处。
        StringBuffer insert(index,数据) 可以将数据插入到指定index位置。
2.删除
        StringBuffer delete(start,end) 删除缓冲区中的数据,包含头,不包                                        含尾
        StringBuffer deleteCharAt(index)  删除指定位置的元素
3.获取
        char charAt(int index)
        int indexof(Srting str)
        int length()
        String substring(begin,end)
4.修改
        StringBuffer replace(int start,int end,String str)  从start到        end替换成str;
        void setCharAt(int index,char ch) 把某个字符替换成ch,注意是没有                返回值的
5.反转
        StringBuffer reverse()
6.将缓冲区中的数据存储到新数组中。
        void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin)
        从缓冲区中的begin到end存到新数组char[]中,并且从dstBegin开始存。
StringBuilder

JDK1.5版本之后出现的,

1.StringBuffer是线程同步的
2.StringBuilder是线程不同步的

以后开发建议使用StringBuilder

升级三个因素:
1.提高效率
2.简化书写
3.提高安全性

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马