专门的输入数据类,可以完成输入数据操作,也可以方便地对输入数据进行验证。
此类存放在java.util包中
<1>实例操作一:实现基本的数据输入
使用Scanner类的next()方法
import java.util.Scanner;
//=================================================
// File Name : Scanner_demo
//------------------------------------------------------------------------------
// Author : Common
//主类
//Function : Scanner_demo;
public class Scanner_demo {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner scan = new Scanner(System.in);
scan.useDelimiter("\n"); //修改输入数据的分隔符,不然空格以后的字符串不能显示,\n回车
System.out.println("输入数据:");
String str = scan.next();
System.out.println("输入数据的数据为:"+str);
}
}
如果输入int或者是float类型的数据,scanner类中也支持,不过最好先使用hasNextXxx()方法进行验证
import java.util.Scanner;
//=================================================
// File Name : Scanner_demo
//------------------------------------------------------------------------------
// Author : Common
//主类
//Function : Scanner_demo;
public class Scanner_demo {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner scan = new Scanner(System.in); //从键盘接收数据
int i =0;
float f = 0.0f;
System.out.println("输入整数:");
if(scan.hasNextInt()){
i = scan.nextInt();
System.out.println("输入的整数"+i);
}else{
System.out.println("输入的不是整数");
}
System.out.println("输入小数:");
if(scan.hasNextFloat()){
f = scan.nextFloat();
System.out.println("输入的小数"+f);
}else{
System.out.println("输入的不是小数");
}
}
}
<2>实例操作一:实现日期格式的数据输入
使用hasNext()对输入的数据进行正则验证,如果合法,则转换成Date类型
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
//=================================================
// File Name : Scanner_demo
//------------------------------------------------------------------------------
// Author : Common
//主类
//Function : Scanner_demo;
public class Scanner_demo {
public static void main(String[] args) {
// TODO 自动生成的方法存根
// Scanner scan = new Scanner(System.in);
// scan.useDelimiter("\n"); //修改输入数据的分隔符,不然空格以后的字符串不能显示,\n回车
// System.out.println("输入数据:");
// String str = scan.next();
// System.out.println("输入数据的数据为:"+str);
// Scanner scan = new Scanner(System.in); //从键盘接收数据
// int i =0;
// float f = 0.0f;
// System.out.println("输入整数:");
// if(scan.hasNextInt()){
// i = scan.nextInt();
// System.out.println("输入的整数"+i);
// }else{
// System.out.println("输入的不是整数");
// }
//
// System.out.println("输入小数:");
// if(scan.hasNextFloat()){
// f = scan.nextFloat();
// System.out.println("输入的小数"+f);
// }else{
// System.out.println("输入的不是小数");
// }
Scanner scan = new Scanner(System.in); //从键盘接收数据
System.out.println("输入日期(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);
}
}
<3>实例操作三:从文件中得到数据
import java.io.File;
import java.io.FileNotFoundException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
//=================================================
// File Name : Scanner_demo
//------------------------------------------------------------------------------
// Author : Common
//主类
//Function : Scanner_demo;
public class Scanner_demo {
public static void main(String[] args) {
// TODO 自动生成的方法存根
// Scanner scan = new Scanner(System.in);
// scan.useDelimiter("\n"); //修改输入数据的分隔符,不然空格以后的字符串不能显示,\n回车
// System.out.println("输入数据:");
// String str = scan.next();
// System.out.println("输入数据的数据为:"+str);
// Scanner scan = new Scanner(System.in); //从键盘接收数据
// int i =0;
// float f = 0.0f;
// System.out.println("输入整数:");
// if(scan.hasNextInt()){
// i = scan.nextInt();
// System.out.println("输入的整数"+i);
// }else{
// System.out.println("输入的不是整数");
// }
//
// System.out.println("输入小数:");
// if(scan.hasNextFloat()){
// f = scan.nextFloat();
// System.out.println("输入的小数"+f);
// }else{
// System.out.println("输入的不是小数");
// }
// Scanner scan = new Scanner(System.in); //从键盘接收数据
// System.out.println("输入日期(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);
File f = new File("/home/common/software/coding/HelloWord/HelloWord/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);
}
}