黑马程序员技术交流社区

标题: 安卓基础day12导师精简笔记 [打印本页]

作者: 清风幕竹    时间: 2016-5-26 22:52
标题: 安卓基础day12导师精简笔记
Scanner类:
    1、Scanner(System.in);
    2、 nextInt(),返回一个int数值
        hasNextInt()
    3、如果一行输入多个数据,那么多个数据之间,使用空格来进行分隔
    4、出现的小问题,先nextInt,然后nextLine出现了获取到的是空串   
        解决方法:
            1、创建两个Scanner对象,浪费内存
            2、全都使用nextLine获取到字符串,将字符串转成数字
            3、可以使用两次nextLine,不具备通用性
String类:
    1、“abc”是一个字面值常量,也是一个对象,存在于常量池中
    2、它一旦被初始化,就不能被改变
        Stringstr = "abc"
        str ="bcd"
    3、构造方法
        3、空参构造
        6、字符串转成字符串
        1、字节数组转成字符串,解码
            编码,"abc",通过查GBK码表,转成数字,存储起来
            解码,将数字(一个一个的字节数据),通过查询GBK码表,转成字符
            String(byte[]arr)
        2、字节数组中的一部分转成字符串
            String(byte[]arr, int begin, int length)
        4、字符数组转成字符串
            String(char[]arr)
        5、字符数组的一部分转成字符串
    空串和null的区别:
        Stringstr =  ""含义是str中记录了一个地址,是空串常量的地址
        str  = null, 含义是str中没有记录任何信息
    面试题:
        1、"",常量,在常量池中,如果池中已经有了,第二次使用就不用新建
            new出来的对象,就在堆内存中
        2、常量和常量相加,有常量优化机制
            "a"+ "b"
        3、变量和常量相加,在运行阶段来进行计算
            在堆内存中进行计算,使用StringBuffer来进行拼接,最后转成String
    判断功能:
        内容:是否相等,是否为空、是否包含,什么开头,什么结尾
    获取功能:
        1、长度,这是个方法
        2、某个位置的字符,charAt(int index)
        3、找索引
            找字符的索引,indexOf('z',1),从索引值为1,开始找,索引值本身不会变
            找字符串的索引  abcd
        4、截取
            subString(intstart),返回一个新的字符串
            subString(intstart, int end),包含头不包含尾
        5、Stringstr = "abc";
            str.subString(2);
            syso(str);
    转换功能:
        1、getBytes
            字符串转成字节数组 "abc".getBytes();
            字节数组转字符串 使用String的构造方法 new String(byte[] arr)
        2、toCharArray
            字符串变字符数组
            字符数组变字符串,使用构造方法 char[] arr
        3、valueOf()
            1+""
        变成大写,变成小写,拼接
        String类的其他功能
            替换的功能String str = "abc".replace("bc","xy")
                        Stringstr = "abc".replace('b','x')
            去掉两端空格
                trim(),中间空格去不了
            字符串的比较
                按照Unicode码来比较
                ASCII
                GBK、utf-8不能和ASCII码冲突
                不管使用哪种码表,都是用来转成字节或者字节转成字符
                转成字节以后,将来存储在硬盘、网络
                Unicode
                在java本身使用时,来使用的编码
        字符串的反转:
            1、使用charAt,索引是从尾部向头部遍历
            2、转成字符数组
                倒着遍历
                数组本地反转
            3、用截取子串
                str.subString(str.length()-1)
                str.sbuString(str.length()-2,str.length()-1)






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