Scanner类的介绍
介绍:一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。
- 构造方法:
- Scanner(InputStream sourse)
- System类下由一个静态的字段
- public static final InputStream in; 标准输入流,对应键盘上输入
- 一般方法:
- hasNextXxx() 判断是否还有下一个输入项,并且看输入的是否满足要求,如果满足则返回true 否则返回false。
- nextXxx() 获取下一个输入值 一般用默认的空格 或者回车间隔
while(true){
Scanner input = new Scanner(System.in);
if(input.hasNextInt()){
return input.nextInt();
}else{
System.out.println("输入格式错误");
}
}
Scanner类的问题
Scanner input = new Scanner(System.in);
System.out.println("输入整数");
int x = input.nextInt();
System.out.println("输入字符串");
String str = input.nextLine;
System.out.println(x+"...."+str);
/* 这里会发现 没有让人输入str就输出了,而且输出时str是空的,
* 这是为什么呢?nextInt 在回车时截至了录入 回车为(\r\n) 但在nextLine也是用回车结
* 尾的。当nextLine录入时,直接遇见了(\r\n)
* 解决方法:1:重新创造一个对象Scannner,
* 2:先用 nextLine 录入 在处理字符串 将整数 分出来。