gpt4 book ai didi

Java 忽略大小写替换字符串序列?

转载 作者:行者123 更新时间:2023-11-29 05:37:37 31 4
gpt4 key购买 nike

对于一个项目,我给出了程序搜索并尝试查找字母序列的序列。如果找到任何内容,它会将这些序列大写并打印出该行。

例如,当我运行程序时,在 bcdaaab 序列中,指定字符串 aa 作为要查找的内容,

应该打印的是:bcdAAAb
正在打印的是:bcdAAab(注意第三个a 没有上限)。

这是因为我只是对不忽略大小写的字符串使用 replaceAll 函数。我想知道是否有任何方法可以让它在我搜索时忽略大小写。如果我根本无法使用 replaceAll,有人可以建议其他算法吗?

最佳答案

您遇到的问题是,即使使用不区分大小写的匹配,它也会替换第一个“aa”,然后在原始替换之后开始搜索下一个匹配项。由于替换后的下一个位置是单个 'a' 后跟一个不同的字母,因此它认为它不匹配。

这将解决您的问题:

"bcdaaab".replaceAll("(?i)a((?=a)|(?<=a))","A");

不要将“aa”替换为“AA”,而是使用它一次替换一个“a”。它利用前瞻和后视来基本上说“我旁边还有另一个‘a’吗?”


如果您出于某种原因不想这样做,您可以随时执行 while(matcher.find(offset))循环。

关于Java 忽略大小写替换字符串序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18907965/

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