A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王广彬 中级黑马   /  2012-8-1 23:48  /  1165 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Scanner类不是可以接收各种类型吗,为什么不能接收日期型的数据啊?求各位显显申通!

1 个回复

倒序浏览
Scnaner 这个类虽然可以接收各种类型,但是对于日期型的数据却无法接收。

如果要想接收Date 类型的数据,则只能通过字符串转型,但是在接收的时候依然可以使用Scanner 类中提供的方法进行验证:

验证:public boolean
hasNext(Pattern pattern)

接收:public
String next(Pattern pattern)
代码,借鉴下:
  1. import java.util.* ;
  2. import java.text.* ;
  3. public class ScannerDemo04{
  4.         public static void main(String args[]){
  5.                 Scanner scan = new Scanner(System.in) ;        // 从键盘接收数据
  6.                 String str = null ;
  7.                 Date date = null ;
  8.                 System.out.print("输入日期(yyyy-MM-dd):") ;
  9.                 if(scan.hasNext("^\\d{4}-\\d{2}-\\d{2}{1}quot;)){        // 判断
  10.                         str = scan.next("^\\d{4}-\\d{2}-\\d{2}{1}quot;) ;        // 接收
  11.                         try{
  12.                                 date = new SimpleDateFormat("yyyy-MM-dd").parse(str) ;
  13.                         }catch(Exception e){}
  14.                 }else{
  15.                         System.out.println("输入的日期格式错误!") ;
  16.                 }
  17.                 System.out.println(date) ;
  18.         }
  19. };
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马