Java 如何在同一个句子中分别替换同一个单词但不同的大小写?

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

例如,将“如何使用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 = 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());

最好的方法是不要使用正则表达式。你能发布你的解决方案吗?因为我觉得用正则表达式来做这件事有点低效…嗯。。。我的解决方案?很抱歉,这是一个问答网站,不是一个“请免费编写代码”的网站。哦,好的,谢谢:)最好的方法是不要使用正则表达式。你能发布你的解决方案吗?因为我觉得用正则表达式来做这件事有点低效…嗯。。。我的解决方案?很抱歉,这是一个问答网站,不是一个“请免费编写代码”的网站。哦,好的,谢谢:)谢谢,我尝试了你的解决方案,效果非常好:)谢谢,我尝试了你的解决方案,效果非常好:)