完成数据输入的功能,而且在此类中还可以对输入的数据进行验证
完成专门处理输入的数据的类,但是只能得到整数和字符串
*/
import java.io.*;
import java.util.*;
import java.text.*;
public class InputData02{
private BufferedReader buf=null;
public InputData02(){
this.buf=new BufferedReader(new InputStreamReader(System.in));
}
public String getString(String info){ //得到字符串信息
String temp=null;
System.out.print(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;
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 temp=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{
temp=sdf.parse(str); //将字符串变为Date类型
}catch(Exception e){
e.printStackTrace();
}
flag=false;
}else{
System.out.println(err);
}
}
return temp;
}
};
测试类:
import java.io.*;
import java.util.*;
import java.text.*;
public class SystemCase03{
public static void main(String args[]){
int i=0;
float j=0f;
Date date=null;
InputData02 input=new InputData02();
i=input.getInt("请输入第一个数据:","输入的不是整数,请重新输入!");
j=input.getFloat("请输入小数:","输入的不是小数,请重新输入!");
date=input.getDate("请输入日期,格式为(yyyy-mm-dd):","输入的不是日期格式,请重新输入!");
System.out.println("输入的整数为:"+i);
System.out.println("输入的小数为:"+j);
System.out.println("输入的日期为:"+date);
}
};