gpt4 book ai didi

java - java - 如何在没有正则表达式的情况下只替换一次字符串?

转载 作者:IT老高 更新时间:2023-10-28 20:36:48 28 4
gpt4 key购买 nike

我需要用更大的字符串替换动态子字符串,但只需要一次(即第一次匹配)。 String 类仅提供 replace(),它替换子字符串的所有实例;有一个 replaceFirst() 方法,但它只需要正则表达式而不是常规字符串。我对使用正则表达式有两个顾虑:

1) 我的子字符串是动态的,因此可能包含在正则表达式中表示其他含义的奇怪字符,我不想处理字符转义。

2) 这种替换经常发生,我不确定使用正则表达式是否会影响性能。由于正则表达式本身是动态的,因此我无法事先编译正则表达式!

我必须在这里遗漏一些东西,因为在我看来这是一件非常基本的事情......是否有一个 replaceFirst 方法在 java 框架中的其他地方采用常规字符串?

最佳答案

您应该使用已经过测试且记录良好的库来编写自己的代码!

StringUtils.replaceOnce("aba", "a", "")    = "ba"

StringUtils 类来自 Apache Commons Lang3包,可以像这样在 Maven 中导入:

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8.1</version>
</dependency>

关于java - java - 如何在没有正则表达式的情况下只替换一次字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1617005/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com