使用BufferedReader实现整数、小数、字符串、日期类型数据的输入

来源:互联网 发布:多米音乐mac版 编辑:程序博客网 时间:2024/06/04 19:37
import java.io.* ;
import java.util.* ;
import java.text.* ;
public class InputData{
private BufferedReader buf = null ;
public InputData(){// 只要输入数据就要使用此语句
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){}
flag = false ;// 结束循环
}else{
System.out.println(err) ;// 打印错误信息
}
}
return temp ;
}

};


import java.io.* ;
import java.util.* ;
public class TestInput{
public static void main(String args[]) throws Exception{
InputData input = new InputData() ;
// float f = input.getFloat("请输入小数:","输入的不是小数,请重新输入!") ;
// System.out.println("小数:" + f) ;
Date d = input.getDate("请输入日期,格式为(yyyy-mm-dd):","输入的日期格式不正确,请重新输入") ;
System.out.println("日期" + d) ;
}
};

运行结果:

请输入日期,格式为(yyyy-mm-dd):2020-01-01
日期Wed Jan 01 00:00:00 CST 2020

0 0
原创粉丝点击