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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 走过的路 中级黑马   /  2016-1-4 21:17  /  691 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

String类
1、定义
        由字符组成的序列。
2、构造方法
        A:        String s = new String();
                -- 空字符序列
        B:        String s = new String(byte[] bys);
                -- 使用平台的默认字符集解码指定的 byte 数组,构造一个 String。
        C:        String s = new String(byte[] bys, int index, int length);               
                -- 使用平台的默认字符集解码指定的 byte 数组,构造一个 String。从索引为 index 处开始,截取长度为 length。
                如果参数 index 或者 length 超出数组范围,报出:java.lang.StringIndexOutOfBoundsException
        D:        String s = new String(char[] chs);
                -- 使用字符数组中包含的字符序列,构造一个 String。
        E:        String s = new String(char[] chs, int index, int length);
                -- 使用字符数组中包含的字符序列,构造一个 String。从索引为 index 处开始,截取长度为 length。
                如果参数 index 或者 length 超出数组范围,报出:java.lang.StringIndexOutOfBoundsException
        F:        String s = new String(String str);       
        G:        String s = "hello";
3、特点
        A:字符串一旦初始化就不可以改变。(注意:是指字符串在常量池中的值不可以改变,不是指引用。)
        B:面试题:
                        a:String s = new String("hello")和String s = "hello"的区别。
                                第一种方式在内存中有两个对象。
                                第二种方式只有一个对象。
                        b:请写出结果:
                                String s1 = new String("hello");
                                String s2 = new String("hello");
                                System.out.println(s1==s2); // false
                                System.out.println(s1.equals(s2)); // true

                                String s3 = new String("hello");
                                String s4 = "hello";
                                System.out.println(s3==s4); // false
                                System.out.println(s3.equals(s4)); // true

                                String s5 = "hello";
                                String s6 = "hello";
                                System.out.println(s5==s6); // true
                                System.out.println(s5.equals(s6)); // true       
4、成员方法
        A:判断功能
                boolean equals(Object obj)
                        -- 判断字符串的内容是否相同,区分大小写。
                boolean equalsIgnoreCase(String str)
                        -- 将此字符串与另一个字符串比较,忽略大小写。
                boolean contains(String str)
                        -- 判断字符串中是否包含指定的字符串
                boolean startsWith(String str)
                        -- 判断字符串是否是以指定的字符串开头
                boolean endsWith(String str)
                        -- 判断字符串是否是以指定的字符串结尾
                boolean isEmpty()
                        -- 判断字符串是不是空字符串。注意区分空字符串和null的区别:null是在堆内存中没有对象。       
        B:获取功能
                int length()
                        -- 获取字符串的长度。
                char charAt(int index)
                        -- 获取字符串中给定索引处的字符。(练习遍历字符串)
                int indexOf(int ch)
                        -- 返回指定字符在此字符串中第一次出现的索引。(不存在,返回-1)
                int indexOf(String str)
                        -- 返回指定字符串在此字符串中第一次出现的索引。(不存在,返回-1)
                int indexOf(int ch,int fromIndex)
                        -- 返回指定字符在此字符串中第一次出现的索引,从指定的索引处开始查找。
                int indexOf(String str,int fromIndex)
                        -- 返回指定字符串在此字符串中第一次出现的索引,从指定的索引处开始查找。
                String substring(int start)
                        -- 截取字符串。返回从指定索引截取后的字符串。
                String substring(int start,int end)
                        -- 截取字符串。返回从指定索引开始start到指定索引结束end截取后的字符串。(包括开始索引但不包括结束索引,左闭右开)                       
                注:字符串的截取功能不会对原字符串产生影响。
        C:转换功能
                byte[] getBytes()
                        -- 把字符串转换成字节数组。
                char[] toCharArray()
                        -- 把字符串转换成字符数组。
                static String copyValueOf(char[] chs)
                        -- 把字符数组转换成字符串。
                static String valueOf(char[] chs)
                        -- 把字符数组转换成字符串。
                static String valueOf(int i)
                        -- 把int(基本类型)转换成字符串。
                String toLowerCase():
                        -- 把字符串变成小写。
                String toUpperCase():
                        -- 把字符串变成大写。
                String concat(String str):
                        -- 拼接字符串。       
        D: 其他功能
                替换功能
                        String replace(char oldChar,char newChar):用新的字符去替换指定的旧字符
                        String replace(String oldString,String newString):用新的字符串去替换指定的旧字符串                       
                        补充:
                                replaceFirst(String regex, String replacement)                       
                切割功能
                        String[] split(String regex):将字符串按指定的正则表达式拆分,返回切割后的字符串数组。                       
                        补充:关于切割功能。
                                1、如果字符串中不包含与给定正则匹配的字符(串),那么返回的数组长度为1,数组中的这1个元素值与原字符串相同。
                                2、如果给定的正则表达式在字符串的开始处匹配成功,那么返回数组的第一个元素为一个空字符串(""),也就是在匹配表达式的前面截取出一个空串。
                                   但是,如果给定的正则表达式在字符串的结尾处匹配成功,返回的数组最后一个元素并不会取空字符串,而是最后的匹配表达式前面的部分。                       
                去除字符串两端空格       
                        String trim()
                按字典顺序比较两个字符串  
                        int compareTo(String str)
                按字典顺序比较两个字符串,不考虑大小写。
                        compareToIgnoreCase(String str)   
        (5)案例:
                A:模拟用户登录
                B:字符串遍历
                C:统计字符串中大写,小写,数字字符出现的次数
                D:把字符串的首字母大写,其他小写
                E:大串中截取小串

评分

参与人数 1黑马币 +20 收起 理由
li514620797 + 20

查看全部评分

2 个回复

正序浏览
云鱼 发表于 2016-1-4 21:33
感觉一天要记的东西有好多

对啊,再加上记性不好,怎么办
回复 使用道具 举报 1 0
感觉一天要记的东西有好多
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马