列出名称和出现次数

r4ZR2810

因此,任务是读取具有以下名称的文件:

Alice
Bob 
James  
Richard  
Bob  
Alice  
Alice  
Alice  
James  
Richard  
Bob 
Richard  
Bob  
Stephan  
Michael  
Henry   

并打印出每个名称及其出现的值,例如“ Alice-<4>”。
基本上,我知道了。我唯一的问题是我的输出中缺少姓氏(Stephan-<1>),并且我无法使其正常工作。.可能是因为我使用了[i-1],但正如我所说,在这里没有正确的解决方案。
好吧,这是我的代码。

package Assignment4;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.util.Arrays;

public class ReportUniqueNames {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        System.out.println ("       This programm counts words, characters and lines!\n");
        System.out.println ("Please enter the name of the .txt file:");

        BufferedReader input = new BufferedReader(new InputStreamReader (System.in));

        BufferedReader read = null;
        String file = "";
        String text = "";
        String line = "";
        boolean unique = true;
        int nameCounter = 1;        

        try {

            file = input.readLine();
            read = new BufferedReader (new FileReader(file));
            while ((line = read.readLine()) != null) {
                text += line.trim() + " ";                  
            }

        } catch (FileNotFoundException e) {
            System.out.println("File was not found.");          
        } catch (IOException e) {
            System.out.println("An error has occured.");            
        }

        String textarray[] = text.split(" ");
        Arrays.sort(textarray);

        for (int i=0; i < textarray.length; i++) {

            if (i > 0 && textarray[i].equals(textarray[i-1])) {
                nameCounter++;
                unique = false;
            }

            if (i > 0 && !textarray[i].equals(textarray[i-1]) && !unique) {
                    System.out.println("<"+textarray[i-1]+"> - <"+nameCounter+">");
                    nameCounter = 1;
                    unique = true;
            } else if (i > 0 && !textarray[i].equals(textarray[i-1]) && unique) {
                //nameCounter = 1;
                System.out.println("<"+textarray[i-1]+"> - <"+nameCounter+">");
            }           

        }

    }

}

就是这样。希望你们中的一个能帮助我。

编辑:
哇,这么多不同的方法。
首先,感谢您的帮助。
我将仔细研究您建议的解决方案,并可能从底部重新开始;)。
我完成后会提醒您。

米克助记符

您可以简单地使用Map(模拟“ Multiset ”)来计数单词:

String textarray[] = text.split(" ");

// TreeMap gives sorting by alphabetical order "for free"
Map<String, Integer> wordCounts = new TreeMap<>();

for (int i = 0; i < textarray.length; i++) {
    Integer count = wordCounts.get(textarray[i]);
    wordCounts.put(textarray[i], count != null ? count + 1 : 1);
}

for (Map.Entry<String, Integer> e : wordCounts.entrySet()) {
    System.out.println("<" + e.getKey() + "> - <" + e.getValue() + ">");
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Delphi中列出名称和类型的资源

来自分类Dev

列出名称并随机配对(SQL)

来自分类Dev

列出名称作为 JSON 对象名称

来自分类Dev

如何使用AWS CLI在同一行中列出名称,状态,实例大小和AZ的所有实例

来自分类Dev

MySQL查询以列出名称以相同字符开头和结尾的所有员工(区分大小写)

来自分类Dev

列出名称中仅包含数字的文件

来自分类Dev

Django-mptt没有在模板中列出名称

来自分类Dev

Excel如何创建引用并列出名称?

来自分类Dev

如何使用psql列出名称不包含数字的表?

来自分类Dev

如何使用 vba 列出名称范围内的值?

来自分类Dev

计算出现次数和未出现的出现次数

来自分类Dev

无法通过列出名称的文本文件安装软件包

来自分类Dev

使用reg exp查找并列出名称中包含数字的文件

来自分类Dev

列出名称长度在3到6个字符之间的所有文件

来自分类Dev

在没有NetworkManager的Ubuntu 14.04中列出名称服务器

来自分类Dev

是否可以列出名称上至少包含3个字母的所有文件?

来自分类Dev

如何打开或列出名称与Bash中的两种模式匹配的所有文件

来自分类Dev

列出名称中带有“ SALARIO”字样的目录中以“ .txt”结尾的文件,而不使用管道

来自分类Dev

无法通过具有列出名称的文本文件安装软件包

来自分类Dev

按键输出名称

来自分类Dev

如何在Pandas DataFrame中提取属性名称和最大同时出现次数?

来自分类Dev

按名称计数出现次数

来自分类Dev

R返回出现次数最少的名称

来自分类Dev

从SQL表中的组合框中列出名字和姓氏

来自分类Dev

如何计算文件中字节序列出现的次数?

来自分类Dev

如何在启用延迟扩展的情况下在dos批处理中列出名称包含感叹号的文件?

来自分类Dev

如何在启用延迟扩展的情况下在dos批处理中列出名称包含感叹号的文件?

来自分类Dev

Excel筛选出名称

来自分类Dev

如何按顺序注册ID和出现次数(或次数)?

Related 相关文章

  1. 1

    在Delphi中列出名称和类型的资源

  2. 2

    列出名称并随机配对(SQL)

  3. 3

    列出名称作为 JSON 对象名称

  4. 4

    如何使用AWS CLI在同一行中列出名称,状态,实例大小和AZ的所有实例

  5. 5

    MySQL查询以列出名称以相同字符开头和结尾的所有员工(区分大小写)

  6. 6

    列出名称中仅包含数字的文件

  7. 7

    Django-mptt没有在模板中列出名称

  8. 8

    Excel如何创建引用并列出名称?

  9. 9

    如何使用psql列出名称不包含数字的表?

  10. 10

    如何使用 vba 列出名称范围内的值?

  11. 11

    计算出现次数和未出现的出现次数

  12. 12

    无法通过列出名称的文本文件安装软件包

  13. 13

    使用reg exp查找并列出名称中包含数字的文件

  14. 14

    列出名称长度在3到6个字符之间的所有文件

  15. 15

    在没有NetworkManager的Ubuntu 14.04中列出名称服务器

  16. 16

    是否可以列出名称上至少包含3个字母的所有文件?

  17. 17

    如何打开或列出名称与Bash中的两种模式匹配的所有文件

  18. 18

    列出名称中带有“ SALARIO”字样的目录中以“ .txt”结尾的文件,而不使用管道

  19. 19

    无法通过具有列出名称的文本文件安装软件包

  20. 20

    按键输出名称

  21. 21

    如何在Pandas DataFrame中提取属性名称和最大同时出现次数?

  22. 22

    按名称计数出现次数

  23. 23

    R返回出现次数最少的名称

  24. 24

    从SQL表中的组合框中列出名字和姓氏

  25. 25

    如何计算文件中字节序列出现的次数?

  26. 26

    如何在启用延迟扩展的情况下在dos批处理中列出名称包含感叹号的文件?

  27. 27

    如何在启用延迟扩展的情况下在dos批处理中列出名称包含感叹号的文件?

  28. 28

    Excel筛选出名称

  29. 29

    如何按顺序注册ID和出现次数(或次数)?

热门标签

归档