有一个字符串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]"));
------其他解决方案--------------------------------------------------------
學習了
------其他解决方案--------------------------------------------------------
强烈学习啊。。我写了一晚上没写出来。。。原来一个正则表达式就可以解决了......谢谢
------其他解决方案--------------------------------------------------------
+1
------其他解决方案--------------------------------------------------------
如果str="级阿文111的稳2223定33344我";4楼这样的话如果要求打印结果为[111,2223,33344],你那个方法好想不适应了吧!
------其他解决方案--------------------------------------------------------
System.out.println("今天是2012年,现在事11月13号".replaceAll(
"今天是(\\d+)年,现在事(\\d+)月(\\d+)号", "[$1,$2,$3]"));