2010-07-11 98 views
4

我想用另一个单词替换长字符串中所有出现的单词,例如,如果我想要在下面的字符串中将“very”与“very”更改为所有出现的单词。如何用java中的另一个单词替换字符串中某个单词的所有出现?

string story = "He became a well decorated soldier in the line of fire when he and his men walked into the battle. He acted very bravely and he was very courageous." 

我想我会用replaceAll()方法,但我会简单地插入这样的话作为

story.replaceAll("very ", "extremely "); 
+4

如果这是Java,那么'string'应该大写。 – 2010-07-11 16:35:37

回答

1
story = story.replaceAll("very ", "extremely "); 
15

你需要做出两个改变:

  • 字符串是不可变在Java中 - replaceAll方法不会修改字符串 - 它会创建一个新字符串。您需要将呼叫结果分配给您的变量。
  • 使用字边界('\b'),否则every将变为eextremely

所以,你的代码应该是这样的:

story = story.replaceAll("\\bvery\\b", "extremely"); 

您可能还需要考虑要发生在“非常”或“非常”是什么。例如,您可能希望它分别变为“极端”和“极端”。

+1

写得很好的答案! – 2010-07-11 20:32:11

-1

message = message.replaceAll(“\\ b”+ word +“\\ b”,newword);

相关问题