java键盘输入(BufferedReader和Scanner)
BufferReader(从缓存区读取内容):
常用方法:
- Buffer’Reader(Reader in):构造方法,需要传入一个Reader(字符流)实例
- ReadLine():一次性的从缓存区读取全部内容
实现键盘读取代码:
//从键盘读取输入
public class BufferedReaderDemo {
public static void main(String[] args) {
BufferedReader reader = null;
//System.in为InputStream实例对象
reader = new BufferedReader(new InputStreamReader(System.in));
String str=null;
System.out.print("请输入内容:");
try {
str = reader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("\n输入的内容为:"+str);
}
}
Scnner(jDK1.5后专门键盘输入类)
常用方法:
-
Scanner(InputStream in):构造方法,需要一个InputStream实例,常用System.in
-
hasNext():判断是否读取完
-
hasNext(Patter pattern):进行正则验证,常常传入一个正则字符串表达式
-
hasNextInt():验证读取的输入是否为整数
-
hasNextFloat():验证读取输入是否为Float型数据
-
String next():接收输入
-
int nextInt():接收整型数据
-
float nextFloat():接收小数数据
-
useDelimiter(String pattern):设置分隔符,默认为空格,常设置为“\n\r"换行符
//设置分隔符 public class ScannerDemo02 { public static void main(String[] args) { Scanner scan = null; scan = new Scanner(System.in); System.out.print("请输入内容:"); //设置分隔符,避免读取不到空格后的内容(默认为空格) scan.useDelimiter("\n"); String str = scan.next(); System.out.println("\n输入的内容为:"+str); } }
//读取日期格式的数据 public class ScannerDemo04 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String str = null; Date date = null; System.out.print("请输入日期:"); if(scan.hasNext("^\\d{4}-\\d{2}-\\d{2}$")){ str = scan.next(); try { date = new SimpleDateFormat("yyyy-MM-dd").parse(str); } catch (ParseException e) { e.printStackTrace(); } }else{ System.out.println("日期格式错误"); } System.out.println(date); } }