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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曹文涛 黑马帝   /  2011-9-3 13:51  /  1953 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Input类:[code=java]import java.io.* ;
import java.util.* ;
import java.text.* ;
public class InputData{
        BufferedReader buf = null;
        public InputData(){
                this.buf = new BufferedReader(new InputStreamReader(System.in));
        }
        private 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 ;
                boolean flag = true ;
                String str = null ;
                while (flag){
                        str = this.getString(info);
                        if(str.matches("^\\d+$")){
                                temp = Integer.parseInt(str);
                                flag = false;
                        }else{
                                System.out.println(err);
                        }
                }
                return temp;
        }
        public Date getDate(String info,String err){
                Date temp = null ;
                boolean flag = true ;
                String str = null ;
                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;
        }
        public float getFloat(String info,String err){
                float temp = 0 ;
                boolean flag = true ;
                String str = null ;
                while (flag){
                        str = this.getString(info);
                        if(str.matches("^\\d+.?\\d+$")){
                                temp = Float.parseFloat(str);
                                flag = false;
                        }else{
                                System.out.println(err);
                        }
                }
                return temp;
        }
}[/code]主类完成键盘输入日期按yyyy-MM-dd格 但最后也想按此格式输出 第10句应该怎么写 我这样写 提示找不到符号[code=java]import java.io.* ;
import java.text.* ;
import java.util.* ;
public class ExecDemo03{
        public static void main(String args[]){
                Date str = null ;
                SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
                InputData Input = new InputData();
                str = Input.getDate("请输入日期,格式为yyyy-mm-dd:","输入错误,请重新输入!");
                System.out.print("输入的日期为:" + dft.format.(str));
        }
}[/code]

6 个回复

倒序浏览
黑马网友  发表于 2011-9-3 15:42:05
沙发
dft.format.(str)         //没时间帮你做实验了,没这种写法把,format方法也不是这么用的吧
回复 使用道具 举报
黑马网友  发表于 2011-9-3 15:44:16
藤椅

回复 楼主 的帖子

dft.format.(str)这里多了一个点,改为dft.format(str)就好了
回复 使用道具 举报
黑马网友  发表于 2011-9-3 17:10:08
板凳
需要修改两处:
1:将public class InputData中的public 去掉;
2:将dft.format.(str)改为dft.format(str);
运行结果如下:
请输入日期,格式为yyyy-mm-dd:2011-02-28
输入的日期为:2011-02-28
回复 使用道具 举报
黑马网友  发表于 2011-9-3 20:11:44
报纸
谢谢 还真是多个点 没点了 就OK了
回复 使用道具 举报
黑马网友  发表于 2011-9-3 23:03:27
地板
中午大概看了SimpleDateFormat
format(Date date, StringBuffer toAppendTo, FieldPosition pos)
以为你可能用错了
回复 使用道具 举报
黑马网友  发表于 2011-9-3 23:07:41
7#
刚才看了下原来format(str)是调用父类父类的方法
java.lang.Object
  j[color=Red]ava.text.Format[/color]         [color=Green]   //format(Object obj)[/color]
      java.text.DateFormat
          java.text.SimpleDateFormat
刚才不小按了enter+ctrl,结果一条回复成两条了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马