正規表現がありますが、Java での使用方法がわかりません。これは Java コードです。
String inputString = "he is in cairo on 20-2-20 12 and he will be here on JANUARY 20 2013 the expected time to arrived is 100: 00 ";
String pattern = " ";
Pattern pt = Pattern.compile(pattern);
Matcher m = pt.matcher(inputString);
String resultString=null;
if(m.find()) {
resultString = m.replaceAll(" ");
}
System.out.println(resultString);
要件は次のとおりです。
- 単一のスペースで置き換えられたスペースを削除します。
- このようなデータ形式
dd-mm-yyyy
。 - 数字の間にスペースがある場合は、数字の間だけを削除してください。
- JANUARY という月は、おそらく次の形式で表されます:
JAN
.
予想される出力は次のとおりです。
he is in cairo on 20-2-2012 and he will be here on 20-01-2013 the expected time to arrived is 100:00
私はこれを使用しました:
Matcher m = Pattern.compile("(\\d+)-(\\d+)?\\s*(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)").matcher(inputString);
String resultString=null;
String temp_str=null;
while (m.find()) {
if (m.groupCount()==3) {
int first = Integer.valueOf(m.group(1));
int second = Integer.valueOf(m.group(2));
String month = m.group(3);
System.out.println("three parts");
temp_str=m.replaceAll("\\1-\\2-\\3");
System.out.println(temp_str);
} else {
int first = Integer.valueOf(m.group(1));
String month = m.group(2);
System.out.println("two parts");
temp_str=m.replaceAll("\\1-\\2-\\3");
}
}