Scanner概述:
一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器
Scanner构造方法原理
Scanner(InputStream sourse)
System类下面有一段静态的字段:
public static final InputStream in;
标准的输入流,对应着键盘录入
一般方法
hasNextXxx() 判断是否还有下一个输入项,其中Xxx可以是Int,Double等,如果需要判断是否包含下一个字节,则可省略Xxx
nextXxx()获取下一个输入项Xxx的含义和上个方法中的Xxx相同,默认情况下,Scannner使用空格,回车等作为分隔符
package com.zhang;
import java.util.Scanner;
public class demo1_Scanner {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in); //键盘录入
// int i=sc.nextInt(); //键盘录入一个整数存储在i中
// System.out.println(i);
if(sc.hasNextInt()) {
int i=sc.nextInt();
System.out.println(i);
}else {
System.out.println("输入类型错误");
}
}
}
运行结果
两个常用的方法
public int nextInt();//获取一个int类型的值
public String nextLine();//获取一个String类型的值
import java.util.Scanner;
public class demo1_Scanner {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); //键盘录入
/*
System.out.println("请输入第一个整数:");
int i=sc.nextInt(); //键盘录入一个整数存储在i中
System.out.println("请输入第二个整数:");
int j=sc.nextInt();
System.out.println("i = " + i + "j = " + j);
System.out.println("请输入第一个字符串:");
String line1=sc.nextLine();
System.out.println("请输入第二个字符串:");
String line2=sc.nextLine();
System.out.println("line1 = " + line1 + "line2 = " + line2);*/
/*
* nextInt()是键盘录入的方法,我们录入10的时候录入的是10和\r\n,nextInt()方法只获取值就结束了
* nextLine()是键盘录入字符串的方法,可以接收任意类型,但是他遇到\r\n就证明一行结束
* */
System.out.println("请输入一个整数:");
int k=sc.nextInt();
System.out.println("请输入一个字符串:");
String line3=sc.nextLine();
System.out.println("k = " + k + "line3 = " + line3);
/*
* 解决方案1:创建两次对象但是浪费空间
*/
int i = sc.nextInt();
Scanner sc2 = new Scanner(System.in);
String line =sc2.nextLine();
System.out.println(i);
System.out.println(line);
/*
* 解决方案2:将键盘录入的都用nextLine()方法,后面我们会学习将整数字符串转换为整数的方法
*/
}
}