gpt4 book ai didi

java - 使用 Scanner 读取文本文件并计算每次出现的字母

转载 作者:搜寻专家 更新时间:2023-11-01 03:23:07 25 4
gpt4 key购买 nike

所以我有一个关于数组的作业。要求使用 Scanner 读取文本文件并记录每个字母的出现并将它们存储在表中。

例如:

public class something {

char[] alphabet = "abcdefghijklmnopqrstuvwxyz".toCharArray();

public void displayTable () {
for (int i = 0; i < alphabet.length; i++) {
System.out.println(alphabet[i] + ": " + count);
}
}

我不知道如何构造存储每个字母出现的方法。

它应该是这样的:

public void countOccurrences (Scanner file) {
//code to be written here
}

如果文本文件只有一行并且该行是:

Hello World

该方法将忽略任何整数或符号,只输出表中出现的字符。

d: 1
e: 1
h: 1
l: 3
o: 2
r: 1
w: 1

我自己无法解决这个问题,非常感谢任何帮助!

谢谢,害羞

最佳答案

只需使用 map 。阅读内联评论以获取更多信息。

Map<Character, Integer> treeMap = new TreeMap<Character, Integer>();
// initialize with default value that is zero for all the characters
for (char i = 'a'; i <= 'z'; i++) {
treeMap.put(i, 0);
}

char[] alphabet = "Hello World".toCharArray();

for (int i = 0; i < alphabet.length; i++) {
// make it lower case
char ch = Character.toLowerCase(alphabet[i]);
// just get the value and update it by one
// check for characters only
if (treeMap.containsKey(ch)) {
treeMap.put(ch, treeMap.get(ch) + 1);
}
}

// print the count
for (char key : treeMap.keySet()) {
int count = treeMap.get(key);
if (count > 0) {
System.out.println(key + ":" + treeMap.get(key));
}
}

Hello World 的输出忽略大小写

d:1
e:1
h:1
l:3
o:2
r:1
w:1

逐行读取文件。迭代行的所有字符并更新 Map 中的出现。

关于java - 使用 Scanner 读取文本文件并计算每次出现的字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23726323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com