java 写一个2个字符串字段 文字查重工具类 得出百分占比 举例
时间: 2024-10-23 11:12:00 浏览: 25
当然可以,下面是一个简单的 Java 工具类,用于计算两个字符串之间的相似度,并返回它们的重复百分比。这里我们使用 Jaccard 相似系数作为文本查重的一个基本指标。Jaccard相似系数是指交集大小除以并集大小。
```java
import java.util.HashSet;
import java.util.Set;
public class TextComparator {
public static double calculateSimilarity(String str1, String str2) {
Set<Character> set1 = new HashSet<>();
for (char c : str1.toCharArray()) {
set1.add(c);
}
Set<Character> set2 = new HashSet<>();
for (char c : str2.toCharArray()) {
set2.add(c);
}
Set<Character> intersection = new HashSet<>(set1);
intersection.retainAll(set2);
Set<Character> union = new HashSet<>(set1);
union.addAll(set2);
return (double) intersection.size() / union.size();
}
public static double getDuplicatePercentage(String mainText, String checkText) {
double similarity = calculateSimilarity(mainText, checkText);
double totalChars = Math.max(mainText.length(), checkText.length());
double duplicateChars = totalChars - similarity * totalChars;
return duplicateChars / totalChars * 100; // 转换为百分比
}
public static void main(String[] args) {
String text1 = "这是一个示例文本";
String text2 = "这是相同的文本的一部分";
double percentage = getDuplicatePercentage(text1, text2);
System.out.println("文本重复百分比: " + percentage + "%");
}
}
```
在这个例子中,`calculateSimilarity` 方法计算了两个字符串的字符集合的交集和并集,然后得出相似度。`getDuplicatePercentage` 方法将相似度转换为重复的字符百分比。当你运行 `main` 方法时,它会打印出这两个字符串的重复比例。
阅读全文