我的字符串很长,例如KA01F332-9:25,KA01F212-9:27,KA01F242-9:35,KA01F232-9:45,
。这些是车辆编号和时间的组合。现在我想将KA01F242
的时间替换为10:20
的方法。
到目前为止,我已经做到了。
String busEAT=KA01F332-9:25,KA01F212-9:27,KA01F242-9:35,KA01F232-9:45,;
busEAT.subString(busEAT.indexOf(vno),busEAT.indexOf(','));
但是我没有得到确切的价值。必须动态地做到这一点,任何人都可以帮助我。
最佳答案
您可以像这样使用正则表达式:
String s = "KA01F332-9:25,KA01F212-9:27,KA01F242-9:35,KA01F232-9:45,";
System.out.println(s.replaceFirst("(?<=KA01F242-).*?(?=,)", "10:20"));
// Positive look-behind for "KA01F242" and positive look-ahead for "," . They are just matched but not captured, so they will not get replaced.
O / P:
KA01F332-9:25,KA01F212-9:27,KA01F242-10:20,KA01F232-9:45,
编辑:
"(?<=KA01F242-).*?(?=,)", "10:20")
->首先查找“ KA01F242”前面的任何字符(正向后),然后选择所有字符(“ KA01F242”只是匹配,未选中。)接着,选择所有后续字符,直到您会收到一个逗号(前匹配,未选中)