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

来源:互联网 发布:nvidia cuda windows 编辑:程序博客网 时间:2024/06/06 01:37
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() {       //在类的构造方法里实例化BufferedReaderthis.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;}}

原创粉丝点击