Scanner类

Java Scanner类详解

专门的输入数据类,可以完成输入数据操作,也可以方便地对输入数据进行验证。

此类存放在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);
	}

}

 

转载于:https://www.cnblogs.com/tonglin0325/p/5278511.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值