gpt4 book ai didi

Java:显示一个字母在字符串中出现的次数

转载 作者:行者123 更新时间:2023-11-29 09:57:54 25 4
gpt4 key购买 nike

这是来自 Sun 教程的练习区,所以我想这是作业。

我知道如何使用 for 循环来迭代字符串,但我希望在学习数组的同时学习数组并将它们存储在数组中。这是我到目前为止得到的:

BufferedReader in = new BufferedReader(new FileReader("xanadu.txt"));
int c;
char letters[] = new char[27]; //26 + newline?

while((c = in.read()) != -1){
letters[(char)c] += 1; //store in index, so letters['a'] = 4 etc..
}

现在出于某种原因(适用于其他语言),它没有将 int c 正确地转换为 char,而是输入 letters[110] 或十进制 ascii 中的某些内容,当然这超出了我的数组范围。

我应该用什么方法来解决这个问题,这样我才能得到一个很好的字符索引?

最佳答案

嗯,首先,System.out.println((int) 'A'); 不会给你 01,它会给你 65,所以你至少应该做 letters[(char) c - 'A'] += 1

尽管如此,你只考虑了 27 个字母,其中只包括小写字母?还是大写?没有空间?等等……

你可能想做类似的事情

Map<Character, Integer> counts = new HashMap<Character, Integer>();

BufferedReader in = new BufferedReader(new FileReader("data.txt"));
int c;
while((c = in.read()) != -1) {
int count = counts.containsKey((char) c) ? counts.get((char) c) : 0;
counts.put((char) c, count + 1);
}

关于Java:显示一个字母在字符串中出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3828247/

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