gpt4 book ai didi

java - 为什么我的字母字符出现频率为 0?

转载 作者:行者123 更新时间:2023-12-01 23:05:36 25 4
gpt4 key购买 nike

我的程序读取一个单词文件,我试图打印以字母表中每个字母开头的单词的频率。但我的频率一直显示为“0”。谁能帮我?这是我的程序:

    while (in.hasNext())
{
words.add(in.next());
}
in.close();
aFileReader.close();

for(int i = 0; i < chars.length - 1; i++)
{
int counter = 0;
for(int j = 0; j < words.size(); j++)
{
String temp = words.get(j);
String letter = temp.substring(0);
if(letter.equalsIgnoreCase(chars[i]))
counter++;
}
results += chars[i] + " = " + counter + "\n";
}
JOptionPane.showMessageDialog(null,results);

最佳答案

您的字母子字符串错误。您将获得从 temp 的字符 0 到 temp 末尾的子字符串。您需要 .substring(0, 1),或者更好的是 .charAt(0)

您可以利用 Java 的 char 类型实际上是一个数字这一事实,而不是使用一个字符数组进行比较。

while (in.hasNext()) {
words.add(in.next().toLowerCase());
}
in.close();
aFileReader.close();

int[] counter = new int[24];

for(int i = 0; i < words.size(); i++) {
String temp = words.get(i);
int letterIndex = temp.charAt(0) - 'a'
if(letterIndex >= 0 && letterIndex < counter.length)
counter[letterIndex]++;
}
for (int i = 0; i < counter.length; i++) {
results += ((char)('a' + i)) + " = " + counter[i] + "\n";
}
JOptionPane.showMessageDialog(null,results);

关于java - 为什么我的字母字符出现频率为 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22821606/

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