[英]Comparing two String arrays
我正在制作一个比较两个文本文件并返回它们相似度(基于给定算法)的程序。 对于第一个文件中的每个唯一单词,我想找到它们在第二个文件中出现的概率。 但是,每当我运行程序时,返回的相似度始终为0.0。 这就是我现在所拥有的:
public static double nestedLoop(String[] doc1, String[] doc2) {
// nested loop: sort doc1, for each unique word in doc1, find all
// occurences in doc2 using a sequential search
java.util.Arrays.sort(doc1);
double similarity = 0.0;
for (int i = 0; i < doc1.length - 1; i++) {
if (doc1[i] != doc1[i + 1]) {
String unique = doc1[i];
double count = 0.0;
for (int j = 0; j < doc2.length; j++) {
if (unique == doc2[j]) {
count++;
similarity += count / doc2.length;
}
}
}
}
return similarity;
}
有人可以告诉我怎么回事吗?
if (unique == doc2[j]) {
应该
if (unique.equals(doc2[j])) {
对于if (doc1[i] != doc1[i + 1]) {
应该:
if (!(doc1[i].equals(doc1[i + 1]))) {
String
比较应始终使用equals()
而不是==
(字符串文字比较的情况除外)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.