当前位置: 首页 > 面试题库 >

Java查找和替换字符串的最佳方法?

程峻
2023-03-14
问题内容

我正在寻找Java中字符串查找和替换的最佳html" target="_blank">方法。

这句话是这样的:“我叫米兰,人们把我称为米兰·瓦西奇​​”。

我想用Milan Vasic代替字符串Milan,但是在我已经拥有Milan Vasic的地方,不应该这样。

搜索/替换后的结果应为:“我叫Milan Vasic,人们称我为Milan Vasic”。

我曾尝试使用indexOf()以及Pattern / Matcher组合,但是我的结果都不美观,有人可以使用优雅的解决方案吗?

干杯!


问题答案:

好吧,您可以使用正则表达式查找“
Milan”后没有“ Vasic”的情况:

Milan(?! Vasic)

并将其替换为全名:

String.replaceAll("Milan(?! Vasic)", "Milan Vasic")

(?!...)部分是否定的前瞻性,可确保括号中的部分不跟随任何匹配项。它不会在比赛本身中消耗任何字符。

另外,您可以简单地在姓氏后插入(好,技术上是替换零宽度的匹配项)姓氏,除非姓氏后面已经跟有姓氏。这看起来很相似,但是后面也使用了积极的表情:

(?<=Milan)(?! Vasic)

您可以将其替换为" Vasic"(请注意字符串开头的空格):

String.replaceAll("(?<=Milan)(?! Vasic)", " Vasic")

例如,您可以在此处尝试这些操作。



 类似资料:
  • 问题内容: 我需要替换一些字符,如下所示:,… 我编码如下,但是我想应该有一些更好的方法。有什么提示吗? 问题答案: 替换两个字符 我给当前答案中的所有方法加上了一个额外的时间。 使用输入字符串并替换和,最快的方法是将替换链接在一起,如下所示:。 每个功能的时间: a)1000000次循环,每个循环最好为3:1.47 s b)1000000个循环,每个循环的最佳时间为3:1.51μs c)1000

  • 问题内容: 我有一个以字符串形式传递的句子,我正在对单词“ and”进行替换,我想用“”替换它。而且它不是用空格替换“和”一词。以下是我的逻辑示例。而当我调试此逻辑时,逻辑确实落入了句子。 这里有我想念的东西吗? 问题答案: 而当我调试此逻辑时,逻辑确实落入了句子。 是的,然后你放弃返回值。 Java中的字符串是不可变的-当你调用时,它不会更改现有字符串的内容-它会返回经过修改的新字符串。所以你要

  • 问题内容: 我在尝试搜索字符串中的子字符串时遇到问题。该子字符串可能在字符串中也可能不在字符串中。 我知道是否可以完成的两种方法是: 正则表达式 但是,还有其他“优化”方式吗?你会怎么做? Ruby可以提供更好的答案吗?由于我们使用jRuby,因此答案可以是Ruby或Java。 问题答案: 在Ruby中,使用方法: 返回。

  • 问题内容: 我试图从找到字符串中的,如果有串,我需要用相应的值来代替它 我有如下 我可以使用任何(左侧)字符串,我需要将其替换为右侧字符串值 以下是几个示例错误消息 下面是我的方法转换错误消息 以下是预期的输出:对于errorMessage1,它工作正常 但是对于errorMessage2它不起作用。它不会替换为 有没有办法找到多个字符串的出现并将其替换为其对应的值? 例如:查找并替换为 也想知道

  • 问题内容: 我得到了这个清单: 我想用一些与之相似的奇异值代替,从而得到一个新的清单: 问题答案: 这些称为列表推导。

  • 问题内容: 我正在使用以下内容以递归方式在目录中搜索特定的字符串,并将其替换为另一个: 这样可以。唯一的问题是,如果字符串不存在,则失败,因为它没有任何参数。这对我来说是个问题,因为我是使用ANT自动运行的,而构建由于失败而失败。 如果找不到该字符串,有没有办法使它失效? 我对我可以使用的单行简单解决方案感兴趣(不一定与或与此类通用unix命令一起使用)。 问题答案: 您可以使用和直接进入,而不是