【问题标题】:Java String find and replace a partJava String 查找和替换部分
【发布时间】: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”不一样。

标签: java string replace


【解决方案1】:

您可以为此使用正则表达式单词边界匹配器\b

str = str.replaceAll("\\babc\\b", "xyz");

https://www.regular-expressions.info/wordboundaries.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-15
    • 2019-07-29
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    • 2017-01-17
    相关资源
    最近更新 更多