黑马程序员技术交流社区

标题: Day12课堂笔记 [打印本页]

作者: 张海旭    时间: 2015-5-28 22:32
标题: Day12课堂笔记
1.回顾
        工具的使用
       
        Object
                toString
                equals
2. Scanner 键盘录入
        nextInt() -- 获取int类型(必须输入数字格式的字符,还要在int范围内)
        nextLine() -- 获取一行的数据,是String类型
                注意:先输入int类型,再输入String类型,并且用nextInt() 和nextLine()接收,后面的Sting类型就接收不到了。
                原因:回车换行符,nextLine()捕捉到了"\r\n"
                解决方案:1)重写创建键盘输入对象。
                                        2)全部用nextLine(),接收成String类型,然后再转换成int。
                                       

3. String类
        1)构造方法:
                String()
                String(byte[] value)
                String(byte[] value, int index, int length)
                String(char[] value)
                String(char[] value, int index, int length)
                String("abc")
                String s = "abc"; -- 直接赋值方式(常用)
               
                空串与null的区别:
                        空串是有对象的,在内存中有空间
                        null 是没有对象的,在内存中没有空间
        2)数组和字符串分别通过什么方式获长度?
                数组 length属性
                字符串 length() 方法
        3)
                1. 怎么理解字符串一旦被创建不能改变,这是一个常见的面试题。
                        常量池。出现为了什么?为了效率。产生弊端:占用内存空间。
                        字符串一旦被创建就不可以改变,指的是字符串在常量池中的值不再发生改变,但是引用却可以在任意时刻改变指向。
                2. String s1 = new String(“abc”);
                        这种方式在内存中有2个对象。
                        String s2 = “abc”;
                        直接赋值的方式 在内存中只有一个对象。
                        s1和s2有区别吗?
                               
        4)字符串的判断功能
                equals(Object obj)
                equalsIgnoreCase(String str)
                        -- 注意 : 只有这种明确说明了忽略大小写的方法,才忽略大小写。默认是区分的
                contains(String str)
                startsWith(String str)
                endsWith(String str)
                isEmpty() -- 判断是否是空串。(区分null)
               
        5)字符串的获取功能       
                int length()
                char charAt(int index)
                indexOf(char ch)
                indexOf(String str)
                indexOf(char ch, int fromIndex)
                indexOf(char ch, int fromIndex)
                -- lastIndexOf()
                substring(int index) -- 截取到结尾
                substring(int start, int end) -- 从start截取到end,左闭右开。
               
                注意:
                        左闭右开原则有普适性
                        获取功能对原字符串没有影响
                                       
                查看下面需求,思考思路(不要求写出代码)
                给定一个字符串常量,统计该串中有大写字母、小写字母、数字各有多少个。
                举例:
                        Hello12345World
                        大写 : 2个
                        小写 : 8个
                        数字 : 5个
                        注意事项:如果使用char直接比较的方式 , 别忘了 ''
        6)字符串的转换功能
                byte[] getBytes() -- 转换为字节数组
                char[] toCharArray() -- 转换为字符数组
                static String copyValueOf(char[] chs) -- 字符数组转换成字符串
                static valueOf(int i) -- 基本数据类型
                static valueOf(Object obj) -- 引用数据类型(根据对象的toString方法返回)
                static valueOf(char[] chs)
                String toUpperCase() -- 转大写
                String toLowerCase() -- 转小写
                String concat(String str) -- 连接字符串(相当于+)
               
                查看下面需求,完成代码
                需求 : 把字符串的首字母转成大写,其余为小写
                举例:
                        helloWorld
                        转化后结果:
                        Helloworld
        7)字符串的其他功能
                替换功能 replace(String old, String new)
                切割功能 String[] split(String regex)
                        切割功能补充:
                        1、如果字符串中不包含与给定正则匹配的字符(串),那么返回的数组长度为1,数组中的这1个元素值与原字符串相同。
                        2、如果给定的正则表达式在字符串的开始处匹配成功,那么返回数组的第一个元素为一个空字符串(""),也就是在匹配表达式的前面截取出一个空串。
                        但是,如果给定的正则表达式在字符串的结尾处匹配成功,返回的数组最后一个元素并不会取空字符串,而是最后的匹配表达式前面的部分。

                去除前后端空格:
                        trim()
                字典顺序比较
                        int compareTo()
                        -- 依次拿相同索引上的字符进行比较,如果相同,继续往下,如果不同,返回字符相减的值,如果全部一样,返回0
               
               
               
               
               
               
               
               
               
               
               
               
               
               
                                       
                                       
                                       
作者: Lucus    时间: 2015-5-28 23:12
提前预习了!!第十二天讲这么多知识点!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2