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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 谭威威威威 中级黑马   /  2015-8-20 22:58  /  492 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

String类

        (1)字符串:多个字符组成的一串数据。
        (2)构造方法:
                A:String s = new String();
                B:String s = new String(byte[] bys);
                C:String s = new String(byte[] bys,int index,int length);
                D:String s = new String(char[] chs);
                E:String s = new String(char[] chs,int index,int length);
                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():判断字符串对象是否为空。数据是否为空。
                B:获取功能
                        int length():获取字符串的长度
                        char charAt(int index):返回字符串中给定索引处的字符
                        int indexOf(int ch):返回指定字符在此字符串中第一次出现的索引
                        int indexOf(String str):返回指定字符串在此字符串中第一次出现的索引
                        int indexOf(int ch,int fromIndex):返回在此字符串中第一次出现指定字符的索引,从指定的索引开始搜索。
                        int indexOf(String str,int fromIndex):返回在此字符串中第一次出现指定字符串的索引,从指定的索引开始搜索。
                        String substring(int start):截取字符串。返回从指定位置开始截取后的字符串。
                        String substring(int start,int 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:其他功能
                        a:替换功能
                                String replace(char oldChar,char newChar):用新的字符去替换指定的旧字符
                                String replace(String oldString,String newString):用新的字符串去替换指定的旧字符串

                        b:切割功能
                                String[] split(String regex):按照规定的格式切割字符串成字符串数组
                       
                        c:去除两端空格功能
                                String trim():去除字符串两端空格       
                       
                        d:字典顺序比较功能 (了解)
                                int compareTo(String str):按字典顺序(Unicode编码顺序),如果第一个相同比较第二个,依次类推
                                int compareToIgnoreCase(String str) :按字典顺序(Unicode编码顺序),如果第一个相同比较第二个,依次类推,不区分大小写

        (5)案例:(理解--明天写一遍)

                A:模拟用户登录 (用到了 判断equals 功能,如果有的用户名不区分大小写 还可以用equalsIgnorCase)
                        A1. 创建用户对象,并给定用户名和密码
                        for(int i=0; i<3; i++){
                                A2. 接收键盘录入的用户名和密码
                                A3. 调用User对象的isLogin方法判断用户名和密码是否正确
                                    正确:提示"登陆成功"并跳出for循环
                                    错误:提示"账号输入错误":
                                          还剩0次机会:提示"您的账号已被锁定"
                                          还剩>0次机会:提示"请联系管理员"
                        }

                B:统计字符串中大写,小写,数字字符出现的次数 (用到了 charAt 功能)
                       
                        String s = "Hello12345World";

                        // 定义三个统计变量
                        int bigCount = 0;
                        int smallCount = 0;
                        int numberCount = 0;

                        // 遍历字符串。
                        for (int x = 0; x < s.length(); x++) {
                                char ch = s.charAt(x);
                                // 判断是属于哪种范围                       
                                if (ch >= 'A' && ch <= 'Z') {
                                        bigCount++;
                                } else if (ch >= 'a' && ch <= 'z') {
                                        smallCount++;
                                } else if (ch >= '0' && ch <= '9') {
                                        numberCount++;
                                }
                        }

                C:把字符串的首字母大写,其他小写(用到了 截取 、 连接 、 转大小写 功能)

                        String str2  = str.substring(0,1).toUpperCase().concat(str.substring(1).toLowerCase());

                D:大串中小串出现的次数(用到了 截取 、 indexOf 功能,)

                        public int getCount(String maxString, String minString) {
                               
                                // 定义统计变量
                                int count = 0;
                                // 在大串中查找小串一次
                                int index = 0;
                                // 如果返回值不是-1,说明小串在大串中是存在的。
                                // 判断
                                while ((index  = maxString.indexOf(minString)) != -1) {
                                        // 统计变量++
                                        count++;
                                        // 把查找过的数据给截取掉,重新赋值给大串
                                        maxString = maxString.substring(index + minString.length());
                                }
                                return count;
                        }

                E:学习indexOf过程中,我们发现contains()的底层就是用的indexOf()
                        public boolean contains(CharSequence s) {
                                return indexOf(s.toString()) > -1;
                        }

1 个回复

倒序浏览
谢谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马