例如有文本文件111.txt里的内容是
20060603
20070503
20080208现在要把它格式化成2006-06-03
2007-05-03
2008-02-08
新手,请多指教,高手帮忙哦~~~~~~

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【linuxtoproot】截止到2008-07-14 10:20:22的历史汇总数据(不包括此帖):
    发帖的总数量:1                        发帖的总分数:0                        每贴平均分数:0                        
    回帖的总数量:0                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:1                        结贴的总分数:0                        
    无满意结贴数:1                        无满意结贴分:20                       
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:---------------------
    无满意结贴率:100.00%               无满意结分率:---------------------
    敬礼!
      

  2.   

    这个简单,要么使用日期格式化方法。要么简单一点,直接使用字符串处理。str.substring(0,4)+"-"+str.substring(4,6)+"-"+str.substring(6)
      

  3.   

    自己读文件,每一条做如下变换:
    public class Test{
        public static void main(String[] args) {
            String str="20080208";
            StringBuilder builder=new StringBuilder(str);
            builder.insert(4, "-");
            builder.insert(7, "-");
            str=builder.toString();
            System.out.println(str);
        }
    }
      

  4.   

    String str =20060607
    str = str.substring(0,4)+"-"+str.substring(5,6)+"-"+str.substring(7,8)
      

  5.   


    String str =fdsaf2006060743242 
    Pattern p = Pattern.compile("[1-2][0-9]{3}[0-1][0-9][0-3][0-9]?", Pattern.CASE_INSENSITIVE);
     Matcher m = p.matcher(ss);
     while (m.find()) {
      String s = m.group();
      String y = s.substring(0, 4);
      String mon = s.substring(4, 6);
      String date = s.substring(6, 8);
      s = y + "-" + mon + "-" + date;
    }
    }
      

  6.   

    晕, 少了个 m.replaceFirst(s)
      

  7.   


        public static String formatDateStr(String src)
        {
            SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
            String ret = "";
            
            try
            {
                Calendar calendar = Calendar.getInstance();
                calendar.setTime(format.parse(src.trim()));
                int year = calendar.get(Calendar.YEAR);
                int month = calendar.get(Calendar.MONTH) + 1;
                int day = calendar.get(Calendar.DAY_OF_MONTH);
                ret = year + "-" + (month < 10? "0" + month: month) + "-" + (day < 10? "0" + day: day);
            }
            catch(ParseException e)
            {
                e.printStackTrace();
            }
            
            return ret;
        }
      

  8.   

    public static void main(String[] args) {
    System.out.println(formatString("20060603"));
    System.out.println(formatString("20070503"));
    System.out.println(formatString("20080208"));
    } public static String formatString(String value) {
    return value.replaceAll("(?<=[1-9])0(?!0)", "-0");
    }
      

  9.   

    如果是20080412,20081101,20081111,
    returnvalue.replaceAll("(?<=[1-9])0(?!0)","-0"好像就不可以吧??
      

  10.   


    忘了考虑这种情况了,呵呵,改成下面这样就好。 public static void main(String[] args) {
    System.out.println(formatString("20060603"));
    System.out.println(formatString("20071103"));
    System.out.println(formatString("20081208"));
    System.out.println(formatString("20080108"));

    } public static String formatString(String value) {
    return value.replaceAll("(?<=[1-9])([01])(?!0)", "-$1");
    }
      

  11.   

    public static void main(String [] args)
        {
            String inputStr = "20090924";
            DateFormat df = new SimpleDateFormat("yyyyMMdd");
            DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd");
            try
            {
                Date date = df.parse(inputStr);
                String outputString = df2.format(date);
                System.out.println(outputString);
            }
            catch (ParseException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
      

  12.   

    public static String getDateStr(String inputStr)
        {
            String outputStr = null;
            DateFormat df = new SimpleDateFormat("yyyyMMdd");
            DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd");
            try
            {
                Date date = df.parse(inputStr);
                outputStr = df2.format(date);
            }
            catch (ParseException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return outputStr;
        }