gpt4 book ai didi

java - 用于计算每个字符出现次数的 Hashmap 实现

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:09:06 24 4
gpt4 key购买 nike

下面的代码是计算每个字符出现的次数,它应该打印计数。但是使用我尝试过的代码,我只得到 1 我不知道我应该做出哪些改变。

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;

class Count_CharMap {
public static void main(String[] args) {
try
{
FileInputStream file = new FileInputStream("D:\\trial.txt");
DataInputStream dis = new DataInputStream(file);
BufferedReader br = new BufferedReader(new InputStreamReader(dis));
String Contents="";
String str="";

while ((Contents = br.readLine()) != null) {
str+=Contents;
}

char[]char_array =str.toCharArray();
int count = 0;
char ch = char_array[count];
Map<Character,Integer> charCounter=new HashMap<Character,Integer>();
for(int i=0;i<str.length();i++)
{
if(charCounter.containsKey(char_array[i]))
{
charCounter.put(ch, charCounter.get(ch)+1);
}
else
{
charCounter.put(ch, 1);
}
}

for(Character key:charCounter.keySet())
{
System.out.println(key+""+charCounter.get(key));
}
}
catch(IOException e1){
System.out.println(e1);
}
}
}

实际输出应该是这样的如果我的 trial.txt 中有 abcdabc,它应该打印 2 b 2c 2 d 1。

最佳答案

在每次循环执行期间,您都将 char ch 设置为相同的字符。

应该是:

ch = char_array[i]; 
if(charCounter.containsKey(ch)){
charCounter.put(ch, charCounter.get(ch)+1);
}
else
{
charCounter.put(ch, 1);
}

在 for 循环中。

关于java - 用于计算每个字符出现次数的 Hashmap 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4363665/

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