Sting str ="2006-04-15 02:31:04"
要吧这个串变成 20060415023104 你会怎么做?

解决方案 »

  1.   

    1.由于格式固定,可以直接subString,然后再拼接成新串
    2.可以用正则表达式
    3.可以用simpleDateFormat来先parse解析字符串str,生成Date对象,然后再format成想要的字符串
      

  2.   

    简单
    public static void main(String[] args) throws Exception{
    String str ="2006-04-15 02:31:04";
    str=str.replaceAll("-","");
    str=str.replaceAll(":","");
    str=str.replaceAll(" ","");
    System.out.println(str);
    }
      

  3.   

    3.可以用simpleDateFormat来先parse解析字符串str,生成Date对象,然后再format成想要的字符串觉得这种是最好的。复杂度低、可维护性好
      

  4.   

    /*
         * @param setTime <br>
         * @return String <br>
     *<br>
     */
    private String setDateFormat(String setTime){

    //
    String nowDate = null;

    //
    SimpleDateFormat mySimpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); 
    try{      
    //
    Date newdate = mySimpleDateFormat.parse(setTime);  
    SimpleDateFormat simpleDateFormat =    
                 new SimpleDateFormat(DATE_FORMAT);  
    _logger.debug("設定 :" + DATE_FORMAT);
    //書式
    nowDate = simpleDateFormat.format(newdate);
    }
    catch(Exception   e){        
    _logger.error(e); 
    }  
    return nowDate;
    }
      

  5.   

    allright_flash() ( ) 信誉:100    Blog  2006-12-01 16:04:04  得分: 0  
     
     
       输出:20060415023104
    不过没有技术含量。不好意思,献丑了  
     
    =====
    估计面试分不会太高
      

  6.   

    To zeyuphoenix() ( ) 信誉:100    Blog 好像反了
      

  7.   

    class  Test
    {
        public static void main(String[] args) 
        {
            String str ="2006-04-15 02:31:04";
            String []result=str.split("\\D");
            for(int i=0;i<result.length;i++)
                System.out.print(result[i]);
        }
    }
      

  8.   

    不好意思,上面理解成输出了
    public static String func(String str) //str ="2006-04-15 02:31:04";
    {
        String s="";
        String []result=str.split("\\D");
        for(int i=0;i<result.length;i++)
            s+=result[i];
        return s;
    }
      

  9.   

    这只是在考你知识有多深,replaceAll是最浅的,会用正则和format给招聘单位的印象会有加分
      

  10.   

    rg_nightkid() ( ) 信誉:100    Blog  2006-12-01 16:48:40  得分: 0   
     
       这只是在考你知识有多深,replaceAll是最浅的,会用正则和format给招聘单位的印象会有加分
      ========= replaceAll用的好象就是正则吧
      

  11.   

    str = str.replaceAll("\\D+","");
      

  12.   

    Sting str ="2006-04-15 02:31:04"
    然后重新赋值
    str="20060415023104"应该是最快
    最不占内存的了
      

  13.   

    Sting str ="2006-04-15 02:31:04"
    然后重新赋值
    str="20060415023104"应该是最快
    最不占内存的了这方法嘎嘎好,呵呵
      

  14.   

    //用for循环删除掉不是数字字符的就好了,这样通用性好一些,不论你中间有什么别的字符.
    //-------------------------------------------------------------------------------
    //Test02.java
    public class Test02 
    {
    public  static String parseNumber(String s)
    {
    String tempString="";
    for(int i=0;i<s.length();i++)
    {
    if(s.charAt(i)<48||s.charAt(i)>57 )continue;
    tempString+=s.charAt(i);
    }
    return tempString;
    } public static void main(String[] args)
    {
    String s="2135-06-08  04:27:29";
    s=parseNumber(s);
    System.out.println(s);
    }
    }
      

  15.   

    public static String dateFormatConversion(String dateString){
      //转换日期格式,2006-04-15 02:31:04到20060415023104
      SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      Date theDate=null;
      try{
       theDate=sdf.parse(dateString);
       }
      catch(ParseException e){
       System.out.println(e.getMessage());
         }
      sdf.applyPattern("yyyyMMddHHmmss");
      return sdf.format(theDate);
      }
    测试通过,上面有位也用的SimpleDateFormat,好像思路有点不一致,等下仔细看看,也希望能指点一下我的这个。
    首先SimpleDateFormat这个类还是挺重要的,因为日期格式是我们常常遇到的一个问题,面试出这种题相当正常。
    我的思路:
    本问题就是一个日期格式的转换,路径是这样的:字符串---转换(parse)为日期---更换pattern---把日期format为这种pattern下的字符串。
    还有就是官方文档上有各种日期格式的pattern的一个例子,看了那个就差不多能理解日期各种日期格式及其对应的pattern。
      

  16.   

    public class DateFormatConversion {    public static String dateFormatConversion(String dateString) {
            //转换日期格式,2006-04-15 02:31:04到20060415023104
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date theDate = null;
            try {
                theDate = sdf.parse(dateString);
            } catch (ParseException e) {
                System.out.println(e.getMessage());
            }
            sdf.applyPattern("yyyyMMddHHmmss");
            return sdf.format(theDate);
        }    public static void main(String[] args) {
            String haha = dateFormatConversion("2006-04-15 02:31:04");
            System.out.println(haha);
        }
    }
      

  17.   

    public class Untitled1 {
        public Untitled1() {
        }
        public static void main(String[] args) {
            String str ="2006-04-15 02:31:04";
            System.out.println(str.replaceAll("[^0-9]",""));
        }
    }
    最短的
      

  18.   

    public class TimeToString {
        public static void main(String[] args) {
            String str ="2006-04-15 02:31:04";
            str=str.replaceAll("[^0-9]","");
            System.out.println(str);
        }
    }
    我觉得用人单位,应该是看你用不用最简单的方法,其实有时候,我们往往喜欢把简单的问题复杂化.
      

  19.   

    概念性问题,String类是不可变的对象...呵呵
      

  20.   

    String str ="2006-04-15 02:31:04";
    str = str.replaceAll("[^0-9]","");
    System.out.println(str);输出:
    20060415023104
      

  21.   

    str = str.replaceAll("\\D+","");  
    ok
      

  22.   

    String str ="2006-04-15 02:31:04";
    str=str.replaceAll("^\\d","");
      

  23.   

    String str = "2005-05-01 01:11:21";
    String s = ""; 

    for(int i=0;i<str.length();i++)
    {


    if(str.charAt(i)!='-'&&str.charAt(i)!=':'&&str.charAt(i)!=' ')
    {

    s = s+str.charAt(i);

    }


    }
      

  24.   

    请问下str.split("\\D");中的"\\D"所指的是什么啊
      

  25.   

    方法1:
    return new SimpleDateFormat("yyyyMMddHHmmss").format(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(str));方法2:
    return str.replaceAll("[ :-]", "");
      

  26.   

    String str ="2006-04-15 02:31:04";
    str=str.replaceAll("-","");
    str=str.replaceAll(":","");
    str=str.replaceAll(" ","");
    System.out.println(str);
      

  27.   

    请问下str.split("\\D");中的"\\D"所指的是什么啊java.util.regex.Pattern里面说得很清楚啊。
      

  28.   

    Sting str ="2006-04-15 02:31:04"
    然后重新赋值
    str="20060415023104"应该是最快
    最不占内存的了
    这种办法也能想出来.厉害
      

  29.   

    SimpleFormat sf=new SimpleFormat("yyyyMMddHHmmss");
    String sst=sf.format(str);
      

  30.   

    String sstr=str.replaceAll("[^0-9]","")
      

  31.   

    return new SimpleDateFormat("yyyyMMddHHmmss").format(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(str));
      

  32.   

    to Char[],然后把非数字的ascii码干掉,然后 to String, over