Java 如何在同一个句子中分别替换同一个单词但不同的大小写?
例如,将“如何使用Matcher替换同一句子中的不同HOW?”替换为“LOL我是否替换同一句子中的不同LOL?” 如果所有的大写字母都是“HOW is all caps”,则将其替换为LOL。否则,将其替换为LOL 我只知道如何找到它们:Java 如何在同一个句子中分别替换同一个单词但不同的大小写?,java,regex,pattern-matching,matcher,Java,Regex,Pattern Matching,Matcher,例如,将“如何使用Matcher替换同一句子中的不同HOW?”替换为“LOL我是否替换同一句子中的不同LOL?” 如果所有的大写字母都是“HOW is all caps”,则将其替换为LOL。否则,将其替换为LOL 我只知道如何找到它们: String source = "HOW do I replace different how in the same " + "sentence by using Matcher?" Pattern pattern = Pa
String source = "HOW do I replace different how in the same " +
"sentence by using Matcher?"
Pattern pattern = Pattern.compile(how, Pattern.CASE_INSENSITIVE);
Matcher m = pattern.matcher(source);
while (m.find()) {
if(m.group.match("^[A-Z]*$"))
System.out.println("I am uppercase");
else
System.out.println("I am lowercase");
}
但我不知道如何使用matcher和pattern来替换它们。这里有一种方法可以实现您的目标:(不一定是最有效的,但它可以工作,而且简单易懂)
String source=“如何使用Matcher替换同一句子中的不同HOW?”;
String[]split=source.replaceAll(“HOW”,“LOL”).split(“”);
字符串newSource=“”;
对于(int i=0;i
替换所有大写字母,然后迭代每个单词,并将剩余的“how”替换为“lol”。最后的子字符串只是为了删除多余的空间。这里有一种方法可以实现您的目标:(不一定是最有效的,但它可以工作,而且简单易懂)
String source=“如何使用Matcher替换同一句子中的不同HOW?”;
String[]split=source.replaceAll(“HOW”,“LOL”).split(“”);
字符串newSource=“”;
对于(int i=0;i
替换所有大写字母,然后迭代每个单词,并将剩余的“how”替换为“lol”。最后的子字符串只是为了删除多余的空间。我想出了一个非常愚蠢的解决方案:
String result = source;
result = result.replaceAll(old_Word, new_Word);
result = result.replaceAll(old_Word.toUpperCase(),
newWord.toUpperCase());
我想出了一个非常愚蠢的解决方案:
String result = source;
result = result.replaceAll(old_Word, new_Word);
result = result.replaceAll(old_Word.toUpperCase(),
newWord.toUpperCase());
最好的方法是不要使用正则表达式。你能发布你的解决方案吗?因为我觉得用正则表达式来做这件事有点低效…嗯。。。我的解决方案?很抱歉,这是一个问答网站,不是一个“请免费编写代码”的网站。哦,好的,谢谢:)最好的方法是不要使用正则表达式。你能发布你的解决方案吗?因为我觉得用正则表达式来做这件事有点低效…嗯。。。我的解决方案?很抱歉,这是一个问答网站,不是一个“请免费编写代码”的网站。哦,好的,谢谢:)谢谢,我尝试了你的解决方案,效果非常好:)谢谢,我尝试了你的解决方案,效果非常好:)