1.Scanner类
用于终端用户输入输出交互
Scanner scanner = new Scanner(System.in);
System.out.println("Please input: ");
String s = scanner.nextLine();
System.out.println("You input: " + s);
System.out.println("Please input: ");
String r = scanner.next();
System.out.println("You input: " + r);
scanner.close();//IO class occupy resource , need to close
同样输入”I DO"
nextLine得到"I DO"
next得到”I"
nextLine以回车键作为结束符
next以空格键作为结束符或分隔符
Scanner scanner = new Scanner(System.in);
System.out.println("Please input: ");
while(scanner.hasNext()) {
String s = scanner.next();
System.out.println("You input: " + s);
System.out.println("Please input: ");
}
scanner.close();//IO class occupy resource , need to close
hasNext()用于判断缓冲区是否仍有数据,若有数据,返回true,继续扫描。
若已经无数据,则阻塞,等待终端输入数据。
需要注意的是程序不会结束,会一直阻塞。
网上说可以设置一个终止符,调用hasNext()的重载方法hasNext(String patten)
但是我尝试了,会直接exit。
另外还可以指定输入数据的类型:
hasNextInt() hasNextFloat() hasNextDouble()
若输入的内容不是int/folat/double,会返回false。
如果输入的内容类型正确,就会一致扫描,直到没有数据,阻塞,等到终端输入。
2. switch case
int m = 2;
switch(m){
case 1:
System.out.println("a");
break;
case 2:
System.out.println("b");
break;
default:
System.out.println("c");
}
switch后的表达式可以是char,int,short,byte和String类型
case后为字面量或字符串常量
表达式的值与case对应,决定跳转位置,若没有break,会一直往下执行,执行之后的每一个case的内容。
所以每个case都需要写break;