首页 > 解决方案 > 试图在用户输入的句子中找到所有四个字母的单词并替换它们,但代码不会做任何事情

问题描述

基本上我需要一个代码片段来查找用户输入的句子中的所有 4 个字母单词并将它们替换为 **** 。我写的代码不管怎么改都行不通。(例如,它不应该计算空格)

public class DisguiseWords {
    static void count(String string) {
        // Create an char array of given String
        int j = string.trim().indexOf(" ");
        while (j > 0) {
            System.out.println(string.substring(0, j) + "-->> words " + j);
            string = string.substring(j + 1).toString();
            j = string.indexOf(" ");
        }
        if (string.length() == 4)
            System.out.println("**** ");
    }
}

标签: java

解决方案


String与正则表达式结合使用时,有一些非常方便的工具。

这个任务可以这样完成:

public static void main(String[] args) {
    String sentence = "Hello this is the test sentence";
    String newSentence = sentence.replaceAll("\\b\\w{4}\\b", "****");
    System.out.println(newSentence);
}

输出:

Hello **** is the **** sentence

解释:

replaceAll将采用正则表达式并用给定的替换替换每个找到的匹配项。正则表达式由以下部分组成:

  • \b标记单词边界
  • \w{4}表示一个有 4 位数字的单词

推荐阅读