说我有字符串“foo1bar2”,我想要替换以执行以下替代与期望的输出“bar1foo2”并行。循环字符串替换
foo => bar
bar => foo
字符串不能被标记,因为子字符串可能发生在任何地方,任何次数。
一个幼稚的方法将是这样的替换,但它会失败,因为第二次替换会撤消第一次。
String output = input.replace("foo", "bar").replace("bar", "foo");
=> foo1foo2
或
String output = input.replace("bar", "foo").replace("foo", "bar");
=> bar1bar2
我不知道正则表达式可以帮助我在这里要么?顺便说一句,这不是家庭作业,只是令人讨厌的兴趣。我尝试过使用Google搜索,但不确定如何描述问题。
我是那种类似想法的,但肯定必须有一个更好的方法? – Adam
@Adam你可以编写自己的方法来遍历字符串并搜索要替换的字符。基本上这意味着解析String并将每个单独的字符视为一个标记。 –
@Adam可能有正则表达式和捕获组的解决方案。不过,我只有一个模糊的想法。 –