实现Java给定一个字符串str和一个字符串数组words,words中所有字符串长度相同

作为一名经验丰富的开发者,我将教你如何实现这个任务。首先,我们需要定义问题的整体流程,然后详细说明每个步骤需要做什么以及使用哪些代码。

流程表格

步骤 描述
1 遍历字符串str,截取长度为words中字符串长度的子串
2 判断子串是否在words数组中
3 统计子串出现的次数

详细步骤

步骤1:遍历字符串str,截取长度为words中字符串长度的子串

// 定义字符串str和字符串数组words
String str = "abccbaabccba";
String[] words = {"abc", "cba"};

// 定义子串长度
int wordLength = words[0].length();

for (int i = 0; i <= str.length() - wordLength; i++) {
    String subStr = str.substring(i, i + wordLength);
    // 此处可以添加打印语句,查看截取的子串是否正确
}

步骤2:判断子串是否在words数组中

// 使用Arrays类中的asList方法将数组转换为List
List<String> wordsList = Arrays.asList(words);

if (wordsList.contains(subStr)) {
    // 子串在words数组中
} else {
    // 子串不在words数组中
}

步骤3:统计子串出现的次数

Map<String, Integer> countMap = new HashMap<>();

for (int i = 0; i <= str.length() - wordLength; i++) {
    String subStr = str.substring(i, i + wordLength);
    if (wordsList.contains(subStr)) {
        countMap.put(subStr, countMap.getOrDefault(subStr, 0) + 1);
    }
}

// 打印每个子串出现的次数
for (String word : countMap.keySet()) {
    System.out.println(word + " 出现的次数为:" + countMap.get(word));
}

饼状图示例

pie
    title 字符串str中子串出现次数比例
    "abc": 2
    "cba": 2
    "ab": 0
    "cb": 0
    "ba": 0

通过以上步骤,你可以实现Java给定一个字符串str和一个字符串数组words,words中所有字符串长度相同的功能。希望这篇文章能够帮助到你,加油!