可以通过以下步骤来实现:

  1. 将输入的字符串分割成单个的单词,可以使用String类的split()方法,将字符串按照空格或其他分隔符拆分成字符串数组。
  2. 创建一个HashMap<String, Integer>来存储每个单词出现的次数,其中key表示单词,value表示该单词出现的次数。
  3. 遍历字符串数组,将每个单词作为key,判断该单词是否已经在HashMap中存在,如果存在则将其出现次数加1,如果不存在则将其加入HashMap并将出现次数设为1。
  4. 遍历HashMap,找出其中出现次数大于1的单词,即为相同部分的字符串。
  5. 将相同部分的字符串保存到一个字符串列表中,可以使用ArrayList来存储。
  6. 输出字符串列表中的所有元素,即为相同部分的字符串。

下面是一个示例代码:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class StringFilter {
    public static void main(String[] args) {
        String input = "Hello Java Hello World Java";
        String[] words = input.split(" ");
        
        // 创建HashMap来存储单词出现的次数
        Map<String, Integer> wordCount = new HashMap<>();
        
        // 遍历字符串数组,统计每个单词出现的次数
        for (String word : words) {
            if (wordCount.containsKey(word)) {
                wordCount.put(word, wordCount.get(word) + 1);
            } else {
                wordCount.put(word, 1);
            }
        }
        
        // 创建ArrayList来存储相同部分的字符串
        List<String> sameWords = new ArrayList<>();
        
        // 遍历HashMap,找出出现次数大于1的单词
        for (Map.Entry<String, Integer> entry : wordCount.entrySet()) {
            if (entry.getValue() > 1) {
                sameWords.add(entry.getKey());
            }
        }
        
        // 输出相同部分的字符串
        for (String word : sameWords) {
            System.out.println(word);
        }
    }
}

运行以上代码,输出结果为:

Hello
Java
``
如何通过java程序过滤一段字符串找出其中相同部分的字符串

原文地址: http://www.cveoy.top/t/topic/iK87 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录