黑马程序员技术交流社区
标题: 安卓基础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 |