Scanner:
咱们创建Scanner类的对象,用的是Scanner的带参构造:
public Scanner(InputStream is);
//Scannner sc = new Scanner(System.in);
System类下有一个静态字段:
public static final InputStream in; //标准的键盘输入流,对应着键盘录入
掌握:
hasNextXxx():判断是否还有下个输入项(大白话:判断后边还 有没有该类型的数据)
nextXxx():获取下一个输入项。
成员方法:
public int nextInt();
public String nextLine();
注意:
先用nextInt()来接受整数,再用nextLine()来接收字符串,会发生一个小问题(nextLine()没办法用来接收,而是直接结束)
原因:nextInt()方法只能用来接受数字,后边的\r\n被nextLine()方法获取到,该方法会直接调用完毕。
解决方案:
方案1: 重新new一个Scanner类的对象。
方案2:都用字符串来接收,然后把其中一个 整数字符串("123") 转成 对应的整数。 (推荐使用)
String类:
1、字符串常量("abc")可以看做是字符串对象。
2、字符串一旦初始化就不能发生改变,这句话对还是错?说出原因
对,这里的 “不能发生改变”指的是 字符串在常量池中的值不能发生改变,因为字符串是常量。
实例:
String s = "abc";
s = "bcd"; //此时只是s的引用发生改变, "abc"本身的值并没有发生改变
3、空串和null的区别:
String str1 = ""; //这个是一个字符串对象,只不过值是空
String str2 = null; //这个是空常量,没有对象。
构造方法:
public String()
public String(byte[] bys)
public String(byte[] bys,int index,int length) //IO流要用到
public String(char[] chs)
public String(char[] chs,int index,int length) //IO流要用到
public String(String s)
可以直接用常量赋值:String s = "abc"; 开发常用。
记忆:
通过字符串的构造方法可以把,字符数组,字节数组转成字符串。
Java用常量优化机制,特点是:有就使用,没有就创建。
如果是字符串变量和字符串常量进行拼接,会先创建一个字符串缓冲区类(StringBufffer,StringBuilder)的对象,拼接完成后,会讲该字符串缓冲区对象,转成String,然后赋值给栈中的String引用。
判断功能:首尾中空加判断
boolean startsWith(String str);
boolean endsWith(String str);
boolean contains(String str);
boolean isEmpty();
boolean equals(Object obj); //区分大小写,这个是重写Object类中的equals()
boolean equalsIgnoreCase(String str); //忽 |
|