1.Scanner类(了解)
-
概述:JDK5以后出现的用于键盘录入数据的类
-
构造方法:
day12_Scanner cn.itcast_01
-
Scanner sc = new Scanner(System.in);
-
原理:public static final InputStream in;是System类下一个静态的字段,表示标准的输入流,对应于键盘录入
InputStream is = System.in;
Scanner(InputStream is) -
常用的成员方法:
-
hasNextXxx() 判断是否是某种类型的
-
nextXxx() 返回某种类型的元素 //掌握!
常用:
public int nextInt():获取一个int类型的值
public String nextLine():获取一个String类型的值了解(开发中不用控制台所以一般遇不到):
同一个Scanner对象,先获取数值,再获取字符串,因为换行符号,会出现一个小问题。
解决方案:
a:重新定义一个Scanner对象
b:把所有的数据都用字符串获取,然后要什么,你就对应的转换为什么 //推荐方案
2.String类(掌握) //开发中最常见的类没有之一
-
字符串定义:就是由多个字符组成的一串数据。也可以看成是一个字符数组
-
字符串的特点:
-
API中规定:
字符串字面值"abc"也可以看成是一个字符串对象;
字符串是常量,一旦被赋值,就不能被改变 //这里值字符串的内容不能改变,而不是引用不能改变,如下图:
-
构造方法 //了解就好
-
public String():空构造
-
public String(byte[] bytes):把字节数组转成字符串
-
public String(byte[] bytes,int index,int length):把字节数组的一部分转成字符串
-
public String(char[] value):把字符数组转成字符串
-
public String(char[] value,int index,int count):把字符数组的一部分转成字符串
-
public String(String original):把字符串常量值转成字符串
-
下面的这一个虽然不是构造方法,但是结果也是一个字符串对象
String s = “hello”; //最常用这种 -
面试题:
-
String s = new String(“hello”);和String s = “hello”;有没有区别?
有。前者会创建2个对象,后者创建1个对象,如下图
-
看程序写结果:
day12_String cn.itcast_02的Demo3和4
System.out.println(s3 == "hello" + "world");// false 这个做错错了,应该是true
总结:
字符串如果是变量相加,先开空间,在拼接 字符串
如果是常量相加,是先加,然后在常量池找,如果有就直接返回,否则,就创建 -
字符串的一个成员方法
public int length():返回此字符串的长度