Scanner类中的常用方法
No. | 方法 | 类型 | 描述 |
1 | public Scanner(InputStream source) | 构造 | 接收InputStream输入流对象,此为输入源 |
2 | public boolean hasNext() | 普通 | 判断是否有数据输入 |
3 | public String next() | 普通 | 取出输入数据,以String形式返回 |
4 | public boolean hasNextXxx() | 普通 | 判断是否有指定类型数据存在 |
5 | public 数据类型 nextXxx() | 普通 | 取出指定数据类型的数据 |
6 | public Scanner useDelimiter(String pattern) | 普通 | 设置读取的分隔符 |
利用Scanner实现键盘数据输入
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) throws Exception { // 此处直接抛出
Scanner scan = new Scanner(System.in); // 准备接收键盘输入数据
System.out.print("请输入内容:"); // 提示信息
if (scan.hasNext()) { // 是否有输入数据
System.out.println("输入内容:" + scan.next());// 存在内容则输出
}
scan.close();
}
}
输入一个数字 —— double
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) throws Exception { // 此处直接抛出
Scanner scan = new Scanner(System.in); // 准备接收键盘输入数据
System.out.print("请输入成绩:");
if (scan.hasNextDouble()) { // 表示输入的是一个小数
double score = scan.nextDouble(); // 省略了转型
System.out.println("输入内容:" + score);
} else { // 表示输入的不是一个小数
System.out.println("输入的不是数字,错误!");
}
scan.close();
}
}
正则验证
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) throws Exception { // 此处直接抛出
Scanner scan = new Scanner(System.in) ; // 准备接收键盘输入数据
System.out.print("请输入生日:"); // 提示文字
if (scan.hasNext("\\d{4}-\\d{2}-\\d{2}")) { // 正则验证
String bir = scan.next("\\d{4}-\\d{2}-\\d{2}") ; // 接收数据
System.out.println("输入内容:" + bir);
} else { // 数据格式错误
System.out.println("输入的生日格式错误!");
}
scan.close();
}
}
读取文件
import java.io.File;
import java.io.FileInputStream;
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) throws Exception { // 此处直接抛出
Scanner scan = new Scanner(new FileInputStream(new File("D:"
+ File.separator + "yootk.txt")));// 设置读取的文件输入流
scan.useDelimiter("\n"); // 设置读取的分隔符
while (scan.hasNext()) {// 循环读取
System.out.println(scan.next()); / 直接输出读取数据
}
scan.close();
}
}