一道简单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]"));