JQInputData工具類:從鍵盤中獲取各種數(shù)據(jù)
package BufferReader;
import java.io.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
public class JQInputData {
private static BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
/**從鍵盤獲取字符串*/
public static String getString(String info){
System.out.println(info);
String str = null;
try{
str = buf.readLine();
}catch (IOException e){
e.printStackTrace();
}
return str;
}
/**從鍵盤獲取int類型數(shù)據(jù)*/
public static int getInt(String info,String err) throws IOException{
boolean flag = true;
int tmp = 0;
while(flag){
String str = getString(info);
if (str.matches("^-?[1-9]\\d*$")){ //里面的\要換成\\轉(zhuǎn)意它
tmp = Integer.parseInt(str);
flag = false;
}else{
System.out.println(err);
}
}
return tmp;
}
/**從鍵盤獲取float類型數(shù)據(jù)*/
public static float getFloat(String info,String err){
boolean flag = true;
float tmp = 0;
while(flag){
String str = getString(info);
if (str.matches("^-?([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+|0)$")){
tmp = Float.parseFloat(str);
flag = false;
}else{
System.out.println(err);
}
}
return tmp;
}
/**從鍵盤獲取日期(2016-06-30)轉(zhuǎn)成Date對象*/
public static Date getDate(String info,String err) throws ParseException{
boolean flag = true;
Date tmp = null;
while(flag){
String str = getString(info);
if (str.matches("([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8])))")){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
tmp=sdf.parse(str);
flag = false;
}else{
System.out.println(err);
}
}
return tmp;
}
}
Test
package BufferReader;
import java.io.IOException;
public class Test {
public static void main(String[] args) throws IOException{
int result = JQInputData.getInt("請輸入一個整數(shù):","輸入不符,請重新輸入");
System.out.println("你輸入了數(shù)字:"+result);
float result2= JQInputData.getFloat("\n請輸入一個浮點數(shù):","輸入不符,請重新輸入");
System.out.println("你輸入了數(shù)字:"+result);
System.out.println("您輸入了文字:"+JQInputData.getString("\n請輸入文字:"));
}
}
/*
所有的輸入字節(jié)數(shù)據(jù)都將存放在緩沖區(qū)中
BufferReader類用于從緩沖區(qū)中讀取內(nèi)容,因為BufferReader只能接收字符流,
所以需要用InputStreamReader將字節(jié)輸入流System.in變?yōu)樽址? */