import java.util.Scanner;
public class ScannerDemo{
public static void main(String[] args){
//生成一个扫描等待系统输入的类的实例对象 in;
Scanner in = new Scanner(System.in);
//定义一个字符串类型的变量s接收对象in的nextLine()方法获取用户输入并返回的字符串值
String s = in.nextLine();
//输出刚刚收到这个输入的字符串
System.out.println(s);
//定义一个整型变量i接收对象in的nextInt()方法获取到的用户输入的int类型的值
int i = in.nextInt();
//输出刚刚接收到的这个输入的int值
System.out.println(i);
//使用in的hasNext()方法判断用户输入的值是否等于exit作为循环体语句是否持续循环的条件
while (!in.hasNext("exit")) {
//使用in的nextLine()方法持续接收用户输入的字符串值并输出到屏幕
System.out.println(in.nextLine());
}
//使用in的close方法关闭自身不再接收用户输入
in.close();
}
}
上部代码示例详细写了备注。可以试一下:
1、接收字符串时是可以输入 整型数字的,因为此时强制转换成了字符串;
2、接收Int整型数字时如果输入了字符串,会抛出如下不匹配的异常和代码所在行:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at ScannerDemo.main(ScannerDemo.java:13)
其实对于java的组织结构通了之后这些都比较好理解了。
关于Scanner类的其他方法请查看oracle的官方文档吧:
https://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html