1、Scanner 的概述和方法介绍
A:Scanner 的概述
B:Scanner 的构造方法原理
Scanner(InputStream source)
System 类下有一个静态的字段:
public static final InputStream in; 标准的输入流,对应着键盘录入。
C: 一般方法
hasNextXxx() 判断是否还有下一个输入项 , 其中 Xxx 可以是 Int,Double 等。如果需要判断是否包含下一个字符串,则可以省略 Xxx
nextXxx() 获取下一个输入项。 Xxx 的含义和上个方法中的 Xxx 相同 , 默认情况下, Scanner 使用空格,回车等作为分隔符
网络配图
2、Scanner 获取数据出现的小问题及解决方案
A: 两个常用的方法:
public int nextInt(): 获取一个 int 类型的值
public String nextLine(): 获取一个 String 类型的值
B: 案例演示
a: 先演示获取多个 int 值,多个 String 值的情况
b: 再演示先获取 int 值,然后获取 String 值出现问题
c: 问题解决方案
第一种:先获取一个数值后,在创建一个新的键盘录入对象获取字符串。
第二种:把所有的数据都先按照字符串获取,然后要什么,你就对应的转换为什么。 ( 后面讲 )
3、String 类的概述
A:String 类的概述
通过 JDK 提供的 API ,查看 String 类的说明
可以看到这样的两句话。
a: 字符串字面值 "abc" 也可以看成是一个字符串对象。
b: 字符串是常量,一旦被赋值,就不能被改变。
网络配图
4、String 类的构造方法
A: 常见构造方法
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): 把字符串常量值转成字符串
B: 案例演示
演示 String 类的常见构造方法
5、String 类的常见面试题
(1)、 判断定义为 String 类型的 s1 和 s2 是否相等
String s1 = "abc";
String s2 = "abc";
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
(2)、下面这句话在内存中创建了几个对象 ?(思考题,在评论中回答)
String s1 = new String("abc");
网络配图
(3)、判断定义为 String 类型的 s1 和 s2 是否相等
String s1 = new String("abc");
String s2 = "abc";
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
(4)、判断定义为 String 类型的 s1 和 s2 是否相等
String s1 = "a" + "b" + "c";
String s2 = "abc";
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
(5)、 判断定义为 String 类型的 s1 和 s2 是否相等
String s1 = "ab";
String s2 = "abc";
String s3 = s1 + "c";
System.out.println(s3 == s2);
System.out.println(s3.equals(s2));
(6)、String 类的判断功能
A:String 类的判断功能
boolean equals(Object obj): 比较字符串的内容是否相同 , 区分大小写
boolean equalsIgnoreCase(String str): 比较字符串的内容是否相同 , 忽略大小写
boolean contains(String str): 判断大字符串中是否包含小字符串
boolean startsWith(String str): 判断字符串是否以某个指定的字符串开头
boolean endsWith(String str): 判断字符串是否以某个指定的字符串结尾
boolean isEmpty(): 判断字符串是否为空。