Java文件读取器put((char)i),k++;)在HashMap中
我试图读取文件的内容,并计算每个字母出现的频率。这就是我的情况:Java文件读取器put((char)i),k++;)在HashMap中,java,hashmap,filereader,Java,Hashmap,Filereader,我试图读取文件的内容,并计算每个字母出现的频率。这就是我的情况: public static void readFile() throws Exception { Map<Character, Integer> lcount = new HashMap<>(); for (Character letter = 'A'; letter <= 'Z'; letter++) { lcount.put(letter, 0); }
public static void readFile() throws Exception {
Map<Character, Integer> lcount = new HashMap<>();
for (Character letter = 'A'; letter <= 'Z'; letter++) {
lcount.put(letter, 0);
}
try {
FileReader reader = new FileReader("file.txt");
for (int i = 1; i != -1; i = reader.read()) {
int k = lcount.get((char) i);
lcount.put((char) i) ,k++);
}
} catch (FileNotFoundException e) {
System.out.println("The file does not exist.");
}
}
public static void readFile()引发异常{
Map lcount=new HashMap();
对于(字符字母='A';字母使用k+1
:
for (int i = 1; i != -1; i = reader.read()) {
int k = lcount.get((char) i);
lcount.put((char) i, k + 1);
}
k++
返回k
的原始值(在增量之前)
或:
没有方法get():
我无法将HashMap中的字符应用于char。(char)I)是有问题的部分,因为它的类型错误。@FFRA我刚刚注意到在(char)I
之后有一个额外的)
。如果reader.read()
产生的字母超出了“A”-“Z”的范围?@Arvind我还没到那里。这是为了上学,所以我会一步一步地走。你打了个小错误:lcount.put((char)I),k++;
应该是lcount.put((char)I),k++;
或lcount.put((char)I,k++)
注意char!=Character
@Ferrybig噢,谢谢!就是这样。我真傻。
for (int i = 1; i != -1; i = reader.read()) {
lcount.put((char) i, lcount.get((char) i) + 1);
}
for (int i = 1; i != -1; i = reader.read()) {
lcount.compute((char) i, (x, i) -> i + 1);
}