【发布时间】:2018-11-15 21:15:33
【问题描述】:
我有一个看起来像这样的输入字符串。
String str="abc + abcd * abcde"
我想换
带有“xyz”的abc。
当我尝试替换字符串的功能时,它会替换所有出现的 abc。
我应该将最终字符串设为
String str="xyz + abcd * abcde"
“abc”不必是字符串中的第一个单词。
我只需要替换包含"abc" 的单词,而不是包含"abcd" 的单词。如果我使用"replace",,它将替换所有不需要的 abc。
“abc”将在abc 之后有运算符。像这样的“abc+abcd+abcde”
这个问题有什么优雅的解决方案吗?
【问题讨论】:
-
你能显示你的代码吗?如果没有看到您的代码,我们无法说出问题
-
尝试概括目标
abc与其他事件的区别... -
您需要更清楚自己的期望。它总是要替换的第一个“abc”吗?是每个“abc”后面都有一个空格吗?你想保留所有跟在另一个字符后面的“abc”实例吗?
-
str.replaceAll("\\b(abc)\\b", "xyz") -
@f1sh 在String中的第一个单词,和String中第一个出现的“abc”不一样。