日期:2014-05-20  浏览次数:20772 次

一道简单java编程题
有一个字符串str="今天是2012年,现在事11月13号";写一个算法求打印结果为[2012,11,13];
------最佳解决方案--------------------
直接用SimpleDateFormat把日期取出来就行了:

package com.codetest.test;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateTest {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("今天是yyyy年,现在是MM月dd号");
String str="今天是2012年,现在是11月13号";

try{
Date date=sdf.parse(str);

sdf.applyPattern("[yyyy,MM,dd]");

System.out.println(sdf.format(date));
}catch(ParseException ex){
ex.printStackTrace();
}
}
}


------其他解决方案--------------------
str.split("\\d");
------其他解决方案--------------------
System.out.println("今天是2012年,现在事11月13号".replaceAll(".*?(\\d+).*?(\\d+).*?(\\d+).*", "[$1,$2,$3]"));
------其他解决方案--------------------
學習了
------其他解决方案--------------------
引用:
System.out.println("今天是2012年,现在事11月13号".replaceAll(".*?(\\d+).*?(\\d+).*?(\\d+).*", "[$1,$2,$3]"));


强烈学习啊。。我写了一晚上没写出来。。。原来一个正则表达式就可以解决了......谢谢
------其他解决方案--------------------
引用:
直接用SimpleDateFormat把日期取出来就行了:
Java code?1234567891011121314151617181920212223package com.codetest.test; import java.text.ParseException;import java.text.SimpleDateFormat;import java.util……


+1
------其他解决方案--------------------
如果str="级阿文111的稳2223定33344我";4楼这样的话如果要求打印结果为[111,2223,33344],你那个方法好想不适应了吧!
------其他解决方案--------------------
引用:
如果str="级阿文111的稳2223定33344我";4楼这样的话如果要求打印结果为[111,2223,33344],你那个方法好想不适应了吧!


System.out.println("今天是2012年,现在事11月13号".replaceAll(
"今天是(\\d+)年,现在事(\\d+)月(\\d+)号", "[$1,$2,$3]"));