gpt4 book ai didi

java - replaceFirst 不起作用,但 replace 在完全相同的输入上起作用?

转载 作者:搜寻专家 更新时间:2023-11-01 04:06:11 25 4
gpt4 key购买 nike

我正在编写一个程序,其中一部分需要替换字符串的一部分而不删除重复项,因此我使用的 replaceFirst() 无法正常工作。

输入:

lock: "O_2_^-^"
str: " O_2_^-^ "

代码:

System.out.println(str);
System.out.println(lock);
System.out.println(str.contains(lock));
str = str.replaceFirst(lock, "");
System.out.println(str);

输出:

 O_2_^-^ 
O_2_^-^
true
O_2_^-^

以上是我程序的真实输出。尽管 replace() 方法不适用于我目前的情况,但我确实对其进行了测试,并且输出完全不同,正如正确的那样。

输入:

lock: "O_2_^-^"
str: " O_2_^-^ "

代码:

System.out.println(str);
System.out.println(lock);
System.out.println(str.contains(lock));
str = str.replace(lock, "");
System.out.println(str);

输出:

 O_2_^-^ 
O_2_^-^
true
//empty line of output because string was detected and removed.

除了编写我自己的 replaceFirst() 方法之外,我已经尝试了所有方法,如果有人有任何建议或意见那会很棒。谢谢!

最佳答案

由于 replaceFirst 的第一个参数被假定为正则表达式,因此您需要转义特殊字符。如果您事先不知道 lock 是什么(示例来自用户输入),您可以使用 Pattern.quote(lock) 来转义它。

另请参阅此 short demo .

关于java - replaceFirst 不起作用,但 replace 在完全相同的输入上起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16677323/

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