使用string.equals比较Java中的两个字符串数组

莫辛·阿里(Mohsin Ali)

我有一种方法可以很好地工作并给出期望的结果。这是代码:

public class arraycomparison {

public static void main(String args[]) {
    try {

        Scanner sc1 = new Scanner(new FileInputStream("/Users/esna786/File1.txt"));
        Scanner sc2 = new Scanner(new FileInputStream("/Users/esna786/File2.txt"));
        List<String> File1Content = new ArrayList<String>();
        List<String> File2Content = new ArrayList<String>();
        List<String> commonWords = new ArrayList<String>();

        //Getting the contents of File1
        while (sc1.hasNext()) {
            File1Content.add(sc1.next());
        }
        String arr1[] = File1Content.toArray(new String[File1Content.size()]);

        //Getting the contents of File1
        while (sc2.hasNext()) {
            File2Content.add(sc2.next());
        }
        String arr2[] = File2Content.toArray(new String[File2Content.size()]);

        int count = 0;

        for (int i = 0; i < arr1.length; i++) {
            for (int j = 0; j < arr2.length; j++) {
                if (arr1[i].equals(arr2[j])) {
                    commonWords.add(arr1[i]);
                    count++;
                }
            }
        }

        String[] comWords = commonWords.toArray(new String[commonWords.size()]);

        System.out.println("Total Number of Common Words are: "+comWords.length);
        for (int i = 0; i < comWords.length; i++) {
            System.out.println(i + 1 + ": " + comWords[i]);
        }


    } catch (Exception e) {
        e.printStackTrace();
    }
}

}

它就是

Total Number of Common Words are: 7
1: apple
2: ball
3: cat
4: duck
5: elephant
6: fan
7: goat
BUILD SUCCESSFUL (total time: 0 seconds)

当我在下面运行与上面几乎相同的程序代码时,使用相同的文件:

//Counting the number of matched words
public int getCommonWords(File File1, File File2) throws IOException {
    try {

        Scanner sc1 = new Scanner(new FileInputStream(File1));
        Scanner sc2 = new Scanner(new FileInputStream(File1));
        List<String> File1Content = new ArrayList<String>();
        List<String> File2Content = new ArrayList<String>();
        List<String> commonWords = new ArrayList<String>();

        //Getting the contents of File1
        while (sc1.hasNext()) {
            File1Content.add(sc1.next());
        }
        String arr1[] = File1Content.toArray(new String[File1Content.size()]);

        //Getting the contents of File1
        while (sc2.hasNext()) {
            File2Content.add(sc2.next());
        }
        String arr2[] = File2Content.toArray(new String[File2Content.size()]);

        int count = 0;

        for (int i = 0; i < arr1.length; i++) {
            for (int j = 0; j < arr2.length; j++) {
                if (arr1[i].equals(arr2[j])) {
                    commonWords.add(arr1[i]);
                    count++;
                }
            }
        }

        String[] comWords = commonWords.toArray(new String[commonWords.size()]);

        System.out.println("Total Number of Common Words are: " + comWords.length);
        for (int i = 0; i < comWords.length; i++) {
            System.out.println(i + 1 + ": " + comWords[i]);
        }

    } catch (Exception e) {
        e.printStackTrace();
    }
    return 0;
}

它在输出区域中显示以下内容:

run:
Total words of File1.txt are: 11
Total Number of Common Words are: 11
1: apple
2: ball
3: cat
4: duck
5: elephant
6: fan
7: goat
8: a
9: b
10: c
11: d

它甚至还显示不匹配的单词,为什么会这样呢?请帮忙。

下午77-1

如果要保留逻辑和数据结构,请使用以下方法:

String commonWords[] = new String [Math.min(arr1.length, arr2.length)];

它远非完美,但可以让您为数组分配值。

然后打印:

for(String str : commonWords) {
    if (str != null) {
         System.out.println(str);
    }
}     

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用string.equals比较Java中的两个字符串数组

来自分类Dev

使用arraylist比较两个字符串数组

来自分类Dev

比较PHP中两个字符串中单词的使用

来自分类Dev

使用JavaScript中的if条件在for循环中比较两个字符串

来自分类Dev

使用命令行参数比较Java中的两个字符串

来自分类Dev

使用.equals()比较两个字符串将返回False,但它们的字节数组相等

来自分类Dev

在C ++中连接两个字符串数组而不使用STL或向量

来自分类Dev

Java中是否可以对两个字符串数组使用一个for循环?

来自分类Dev

Java中是否可以对两个字符串数组使用一个for循环?

来自分类Dev

使用Javascript获取两个字符串之间的字符串数组

来自分类Dev

使用Javascript获取两个字符串之间的字符串数组

来自分类Dev

在Ruby中使用>(大于符号)比较两个字符串?

来自分类Dev

使用perl正则表达式比较两个字符串

来自分类Dev

使用IEnumerable比较两个字符串

来自分类Dev

使用strcmp比较两个字符串的问题

来自分类Dev

在Ruby中使用>(大于符号)比较两个字符串?

来自分类Dev

如何在jsp页面内使用if条件比较两个字符串?

来自分类Dev

如何使用if语句与两个字符串进行比较?

来自分类Dev

我正在尝试使用“ if”和“ OR”执行两个字符串比较

来自分类Dev

如何使用 Perl 比较两个字符串

来自分类Dev

使用LINQ将两个字符串字段合并到一个字符串数组中

来自分类Dev

PHP使用通配符方法将两个字符不同的两个字符串进行比较

来自分类Dev

将两个字符串拆分为 List<string> 并使用 Linq 进行比较

来自分类Dev

使用python从列表中的字符串中删除最后两个字符

来自分类Dev

如何使用逗号分隔python中变量中的两个字符串

来自分类Dev

使用基本Java检查两个字符串是否彼此相似

来自分类Dev

使用Regex在Python中的两个字符串之间更改文本

来自分类Dev

string.Join Linq 查询以合并数组中的两个字符串并输出为单个逗号分隔的字符串

来自分类Dev

如何在不使用数组的情况下比较这两个字符串并删除一个公共字母?

Related 相关文章

  1. 1

    使用string.equals比较Java中的两个字符串数组

  2. 2

    使用arraylist比较两个字符串数组

  3. 3

    比较PHP中两个字符串中单词的使用

  4. 4

    使用JavaScript中的if条件在for循环中比较两个字符串

  5. 5

    使用命令行参数比较Java中的两个字符串

  6. 6

    使用.equals()比较两个字符串将返回False,但它们的字节数组相等

  7. 7

    在C ++中连接两个字符串数组而不使用STL或向量

  8. 8

    Java中是否可以对两个字符串数组使用一个for循环?

  9. 9

    Java中是否可以对两个字符串数组使用一个for循环?

  10. 10

    使用Javascript获取两个字符串之间的字符串数组

  11. 11

    使用Javascript获取两个字符串之间的字符串数组

  12. 12

    在Ruby中使用>(大于符号)比较两个字符串?

  13. 13

    使用perl正则表达式比较两个字符串

  14. 14

    使用IEnumerable比较两个字符串

  15. 15

    使用strcmp比较两个字符串的问题

  16. 16

    在Ruby中使用>(大于符号)比较两个字符串?

  17. 17

    如何在jsp页面内使用if条件比较两个字符串?

  18. 18

    如何使用if语句与两个字符串进行比较?

  19. 19

    我正在尝试使用“ if”和“ OR”执行两个字符串比较

  20. 20

    如何使用 Perl 比较两个字符串

  21. 21

    使用LINQ将两个字符串字段合并到一个字符串数组中

  22. 22

    PHP使用通配符方法将两个字符不同的两个字符串进行比较

  23. 23

    将两个字符串拆分为 List<string> 并使用 Linq 进行比较

  24. 24

    使用python从列表中的字符串中删除最后两个字符

  25. 25

    如何使用逗号分隔python中变量中的两个字符串

  26. 26

    使用基本Java检查两个字符串是否彼此相似

  27. 27

    使用Regex在Python中的两个字符串之间更改文本

  28. 28

    string.Join Linq 查询以合并数组中的两个字符串并输出为单个逗号分隔的字符串

  29. 29

    如何在不使用数组的情况下比较这两个字符串并删除一个公共字母?

热门标签

归档