如何通过java程序过滤一段字符串找出其中相同部分的字符串
可以通过以下步骤来实现:
- 将输入的字符串分割成单个的单词,可以使用String类的split()方法,将字符串按照空格或其他分隔符拆分成字符串数组。
- 创建一个HashMap<String, Integer>来存储每个单词出现的次数,其中key表示单词,value表示该单词出现的次数。
- 遍历字符串数组,将每个单词作为key,判断该单词是否已经在HashMap中存在,如果存在则将其出现次数加1,如果不存在则将其加入HashMap并将出现次数设为1。
- 遍历HashMap,找出其中出现次数大于1的单词,即为相同部分的字符串。
- 将相同部分的字符串保存到一个字符串列表中,可以使用ArrayList
来存储。 - 输出字符串列表中的所有元素,即为相同部分的字符串。
下面是一个示例代码:
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
``
原文地址: http://www.cveoy.top/t/topic/iK87 著作权归作者所有。请勿转载和采集!