Javaの正規表現の置換のやつ
public static void main(String[] args) {
printYYYYMMDD("2011/02/03");
printYYYYMMDD("2011-02-03");
printYYYYMMDD("20110203");
}
private static void printYYYYMMDD(String strDate){
String r =
strDate.replaceAll("(\\d{4})[\\-/]?(\\d{2})[\\-/]?(\\d{2})", "$1$2$3");
System.out.println(r);
}
↓
20110203
20110203
20110203
ウフフ、オッケー☆
■追記■
最初カッコ内を
(\\d{4})[\\-/](\\d{2})[\\-/](\\d{2})
※ハテナがない
ってやってたら同僚から以下のツッコミを受けたので修正しました!
@hiria replaceAll は正規表現にマッチしない場合、引数の文字列をそのまま返すよ。 20110203 の場合はアンマッチの結果として正しい結果になってる。 意図してそうしたのならいいんですけど。。。
だそうで。
チェックを入れたいときはコレの前にmatchesでも使えばいいんじゃないっすかね。