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)
|