Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 计算字母在文本文件中的出现次数_Java_Arrays_Algorithm - Fatal编程技术网

Java 计算字母在文本文件中的出现次数

Java 计算字母在文本文件中的出现次数,java,arrays,algorithm,Java,Arrays,Algorithm,我需要打印文本文件中每个字母的频率。现在我对如何将字母放入一个数组中以使它们由一个数字(a-0、b-1、c-2、d-3等)表示感到困惑。那么,我如何计算每个字母,而不是逐一计算 示例输入(在文本文件中): 我今天过得很愉快 样本输出(不包括省略号): a-3 b-0 c-0 d-3 ... g-1 h-1 i-1 ... o-2 ... y-1 z-0 将所有字母转换成大写或小写 将它们放入一个哈希表中,字母作为键,计数作为值 就这些。算法的复杂度应该与文件中的字母数成线性比例。读取文件后,只要

我需要打印文本文件中每个字母的频率。现在我对如何将字母放入一个数组中以使它们由一个数字(a-0、b-1、c-2、d-3等)表示感到困惑。那么,我如何计算每个字母,而不是逐一计算

示例输入(在文本文件中):

我今天过得很愉快

样本输出(不包括省略号):

a-3 b-0 c-0 d-3 ... g-1 h-1 i-1 ... o-2 ... y-1 z-0

  • 将所有字母转换成大写或小写
  • 将它们放入一个哈希表中,字母作为键,计数作为值
    就这些。算法的复杂度应该与文件中的字母数成线性比例。

    读取文件后,只要有一个字符串,就可以用下面的代码轻松计算频率

    Map<Character, Long> freq = Arrays.stream(arr).
                collect(Collectors.groupingBy(Character::charValue, Collectors.counting()));
    
    Map freq=Arrays.stream(arr)。
    collect(Collectors.groupingBy(Character::charValue,Collectors.counting());
    
    OP似乎是编程或Java的初学者。重点是学习算法如何工作,而不是学习如何使用
    来抛出函数链,这对有经验的人来说可能是干净的代码,但对新手来说,绝对是阅读噩梦。他们中的大多数人甚至不会试图理解单个函数的作用,也不会复制过去。祝贺你,一个新的复制粘贴程序员诞生了。
    Map<Character, Long> freq = Arrays.stream(arr).
                collect(Collectors.groupingBy(Character::charValue, Collectors.counting()));