繁体   English   中英

比较两个字符串数组

[英]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()而不是== (字符串文字比较的情况除外)

请阅读如何比较Java中的字符串?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM