【发布时间】:2012-06-10 13:40:20
【问题描述】:
我需要用“8:00 AM ET - 5:00 PM ET”替换一个字符串,例如“8:00 AM - 5:00 PM”
我尝试了以下代码,但它不起作用...
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
请告诉我为什么第一种方法不起作用,以及是否可以在第二种方法中更正。
【问题讨论】: