我有我需要修改的字符串ArrayList。當我將它們添加到列表中時,它們看起來像這樣。ReplaceAll()替換錯誤的子字符串
tick.add("CAST.ST");
tick.add("ELUX-B.ST");
tick.add("EKTA-B.ST");
我接下來要修改名稱以去除「.ST」,並添加「.XML」
private static void addFileNames(List<String> ticks, List<File> fileNames)
{
List<String> tick = new ArrayList<String>();
for(int i=0; i<ticks.size(); i++)
{
tick.add(ticks.get(i).replaceAll(".ST", ".xml"));
}
for(int i=0; i<tick.size(); i++)
{
File f = new File("XML/" + tick.get(i));
fileNames.add(f);
}
這完全適用於所有的字符串,除了‘CAST.ST’,它獲取的方法修改爲「C.xml.xml」。 我也試過replaceFirst,然後它將子串「AST」替換爲「C.xml.ST」。
有人可以看到我在這裏做錯了嗎?
你嘗試'的replaceAll(「\ ST」,」 .XML「)'?您目前正在匹配任何字符,然後是ST,這就是爲什麼你得到你得到的結果 – vainolo
謝謝,我不得不寫\t tick.add(ticks.get(i).replaceAll(「\\。ST。」,「。 XML「)); – ZedIsDead