本章目标
掌握Scanner类的作用
使用Scanner接收输入数据
Scanner简介
在JDK 1.5之后JAVA提供了专门的输入数据类,此类可以完成BufferedReader类的功能。也可以方便的对输入数据进行验证。此类存放在java.util包中。
使用Scanner类输入数据
实例操作一:实现基本的数据输入
实例操作二:实现日期格式的数据输入
实例操作三:从文件中得到数据
实例操作一:实现基本的数据输入
import java.util.Scanner;
public class ScannerDemo01{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);//从键盘接收数据
System.out.print("输入数据:");
String str = scan.next();
System.out.println("输入的数据为:"+str);
}
/* 结果:如果在以上程序中输入了带有空格的内容,则只能取出空格之前的数据
* 输入数据:I am chaoyi
* 输入的数据为:I
* */
}
修改输入数据的分隔符
在Scanner类中默认的读取分隔符是“ ”,所以如果要想输入有空格数据的时候就需要修改分隔符,使用如下的语句:
——scan.useDelimiter("\n") ;
import java.util.Scanner;
public class ScannerDemo02{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);//从键盘接收数据
scan.useDelimiter("\n");//修改输入数据的分隔符
System.out.print("输入数据:");
String str = scan.next();
System.out.println("输入的数据为:"+str);
}
/* 结果:
* 输入数据:I am chaoyi
* 输入的数据为:I am chaoyi
* */
}
输入int、float
import java.util.Scanner;
public class ScannerDemo03{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);//从键盘接收数据
int i = 0;
float f = 0.0f;
System.out.print("输入整数:");
if(scan.hasNextInt()){//判断输入的是否是整数
i = scan.nextInt();//接收整数
System.out.println("整数数据:"+i);
}else{//输入错误的信息
System.out.println("输入的不是整数!");
}
System.out.print("输入小数:");
if(scan.hasNextFloat()){
f = scan.nextFloat();//判断输入的是否是小数
System.out.println("小数数据:"+f);//接收小数
}else{//输入错误的信息
System.out.println("输入的不是小数!");
}
}
/* 结果:
* 输入整数:3
* 整数数据:3
* 输入小数:5
* 小数数据:5.0
* */
}
实例操作二:实现日期格式的数据输入
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class ScannerDemo04{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);//从键盘接收数据
System.out.print("输入日期(yyyy-MM-dd):");
String str = null;
Date date = null;
if(scan.hasNext("^\\d{4}-\\d{2}-\\d{2}$")){//判断输入格式是否是日期
str = scan.next("^\\d{4}-\\d{2}-\\d{2}$");//接收日期格式的字符串
try{//转换成日期
date = new SimpleDateFormat("yyyy-MM-dd").parse(str);
}catch(ParseException e){
e.printStackTrace();
}
}else{
System.out.println("输入的日期格式错误!");
}
System.out.println(date);
}
/* 结果:
* 输入日期(yyyy-MM-dd):1996-10-16
* Wed Oct 16 00:00:00 CST 1996
* */
}
实例操作三:从文件中得到数据
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ScannerDemo05{
public static void main(String[] args) {
File f = new File("d:"+File.separator+"test.txt");//声明操作文件
Scanner scan = null;
try{
scan = new Scanner(f);//从文件接收数据
}catch(FileNotFoundException e){
e.printStackTrace();
}
StringBuffer str = new StringBuffer();//用于接收数据
while(scan.hasNext()){//判断是否还有内容
str.append(scan.next()).append("\n");//取出内容
}
System.out.println(str);
}
/* 结果:读取 test.txt 文件
* www.baidu.com
* 百度一下
* */
}