方法一:Python代码示例
import re
def count_words(filename):
"""统计文件中每个单词出现的次数"""
with open(filename, encoding='utf-8') as f:
text = f.read()
words = re.findall(r'\w+', text.lower())
return {word: words.count(word) for word in words}
def compare_word_counts(file1, file2):
"""比较两个文件的单词数,并考虑单词出现次数"""
count1 = count_words(file1)
count2 = count_words(file2)
for word in set(count1.keys()) | set(count2.keys()):
if word in count1 and word in count2:
if count1[word] > count2[word]:
print(f"{word}: {count1[word]} > {count2[word]}")
elif count1[word] < count2[word]:
print(f"{word}: {count1[word]} < {count2[word]}")
else:
print(f"{word}: {count1[word]} = {count2[word]}")
elif word in count1:
print(f"{word}: {count1[word]} > 0")
else:
print(f"{word}: 0 < {count2[word]}")
使用示例:
compare_word_counts('file1.txt', 'file2.txt')
方法二:Java代码示例
import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashMap;
import java.util.Scanner;
public class CompareWordCounts {
public static void main(String[] args) {
String file1 = "file1.txt";
String file2 = "file2.txt";
HashMap count1 = countWords(file1);
HashMap count2 = countWords(file2);
for (String word : count1.keySet()) {
if (count2.containsKey(word)) {
int c1 = count1.get(word);
int c2 = count2.get(word);
if (c1 > c2) {
System.out.printf("%s: %d > %d%n", word, c1, c2);
} else if (c1 < c2) {
System.out.printf("%s: %d < %d%n", word, c1, c2);
} else {
System.out.printf("%s: %d = %d%n", word, c1, c2);
}
count2.remove(word);
} else {
int c1 = count1.get(word);
System.out.printf("%s: %d > 0%n",