把输入数据类型封装成一个类

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 这个一个定义好的输入数据类
 * by Zzy
**/
public class InputData {
	private BufferedReader buf=null;
	public InputData() {				       //在类的构造方法里实例化BufferedReader
		this.buf=new BufferedReader(new InputStreamReader(System.in));
	}
	public String getString(String info) {     //从此方法中得到字符串的信息
		String temp=null;
		System.out.println(info);
		try {
			temp=this.buf.readLine();
		}catch(IOException e) {
			e.printStackTrace();
		}
		return temp;
	}
	public int getInt(String info,String err) {  //得到一个整数的输入数据
		int temp=0;
		String str=null;
		boolean flag=true;                       //定义一个循环的处理标志
		while(flag) {
			str=this.getString(info);
			if(str.matches("^\\d+$")) {			//判断输入的是否是数字
				temp=Integer.parseInt(str);		//将字符串变成数字
				flag=false;						//更改标志,退出循环				
			}else {
				System.out.println(err);		
			}
		}
		return temp;	
	}
	public Float getFloat(String info,String err) {//得到小数的输入数据
		float temp=0.0f;
		String str=null;
		boolean flag=true;
		while(flag) {
			str=this.getString(info);
			if(str.matches("^\\d+.?\\d+$")) {
				temp=Float.parseFloat(str);
				flag=false;
			}else {
				System.out.println(err);
			}
		}
		
		return temp;
	}
	public Date getDate(String info,String err) {//得到一个日期的数据
		Date date=null;
		String str=null;
		boolean flag=true;
		while(flag) {
			str=this.getString(info);
			if(str.matches("^\\d{4}-\\d{2}-\\d{2}$")) {
				SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
				try {
					date=sdf.parse(str);
				}catch(ParseException e) {
					e.printStackTrace();
				}
				flag=false;
			}else {
				System.out.println(err);
			}
		}
		return date;
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值