java - 如何以一个不会最终替换另一个字符串的方式替换两个字符串?

标签 java string replace

假设我有以下代码:

String word1 = "bar";
String word2 = "foo";
String story = "Once upon a time, there was a foo and a bar."
story = story.replace("foo", word1);
story = story.replace("bar", word2);

这段代码运行后,story的值将是“从前,有一个foo和一个foo。”

如果我以相反的顺序替换它们会出现类似的问题:

String word1 = "bar";
String word2 = "foo";
String story = "Once upon a time, there was a foo and a bar."
story = story.replace("bar", word2);
story = story.replace("foo", word1);

story的值将是“从前,有一个酒吧和一个酒吧。”

我的目标是把story变成“从前,有一个酒吧和一个foo。”我怎么能做到呢?

最佳答案

使用 replaceEach()方法来自 Apache Commons StringUtils :

StringUtils.replaceEach(story, new String[]{"foo", "bar"}, new String[]{"bar", "foo"})

关于java - 如何以一个不会最终替换另一个字符串的方式替换两个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26791441/

相关文章:

java - 点击通过 JTextArea?

python - 用表中的单个 unicode 替换字母数字子字符串

javascript - 使用javascript一一替换字符串

java - 用户输入Integer,用这个Int调用数组时总是返回0?

java - Intellij Idea 中类型迁移的用例是什么?

string - 无法访问字符串值

c - 在 C 中使用 strtok 拆分具有多个定界符的字符串

php - 将短语与格式匹配的 HTML 搜索

java - 替换所有出现的特定字符并获取所有变体

java - 如何对元素 b 相等的所有元素 a 求和