编写一堆String.replaceAll(“thing1”,“thing2”)最简洁的方法是什么?声明?

时间:2011-08-08 12:21:54

标签: java

我觉得我可以对链接列表做些什么,但我不太确定如何实现它。

〜叹了〜我会喜欢这个在python中。只会使用字典。

非常感谢, 雕像

2 个答案:

答案 0 :(得分:2)

String strOutput = src.replace("foo","foo2").replace("bar","bar2");

或者,如果您还有更多替换项,请将它们存储在数组中:

//array to hold replacements
String[][] replacements = {{"foo", "foo2"}, 
                           {"bar", "bar2"}};

//loop over the array and replace
for(String[] replacement: replacements) {
    src = src.replace(replacement[0], replacement[1]);
}

答案 1 :(得分:0)

如果我理解正确,你想在同一个字符串上做一堆又一个替换(用b替换a,c等等......)

你可以在像这样的地图中做到这一点

String toreplace = ...

Map<String, String> replacements = new HashMap<String, String>();
replacments.put("A","B");
replacments.put("C","D");
replacments.put("D","E");

for (Entry curReplacement : replacments.entryMap())
{
 toReplace.replaceAll(curReplacement.getKey(),curReplacement.getValue())
}

虽然是carfeul。你无法预测替换的顺序,只要你有重叠的替换(例如用b替换b和b)就无法预测结果(在这种情况下,OrderedHashMap将是更好的解决方案)