たとえば、「8:00 AM - 5:00 PM」という文字列を「8:00 AM ET - 5:00 PM ET」に置き換える必要があります。
次のコードを試しましたが、うまくいきません...
time.replaceAll("AM", "AM ET");
time.replaceAll("PM", "PM ET");
convertedTime = time;
System.out.println(convertedTime); // didnt get replaced
以下の方法で試してみましたが、うまくいきましたが、適切に置き換えられませんでした。
Pattern p = Pattern.compile("(AM)");
Matcher m = p.matcher(time);
StringBuffer sb = new StringBuffer();
while(m.find()) {
m.appendReplacement(sb, "AM ET");
}
m.appendTail(sb);
p = Pattern.compile("(PM)");
m = p.matcher(time);
while(m.find()) {
m.appendReplacement(sb, "PM ET");
}
m.appendTail(sb);
System.out.println("sb: " + sb); // coming as sb: 8:00 AM ET - 5:00 PM8:00 AM - 5:00 PM ET
最初のアプローチが機能しなかった理由と、2 番目のアプローチで修正できるかどうかを教えてください。