java编程实现一个方法,由参数给定一个字符串,统计并输出在该字符串中每个字符出现的次数。(用数组方法)

java编程实现一个方法,由参数给定一个字符串,统计并输出在该字符串中每个字符出现的次数。方法原型为:voidcountChar(Stringstr)... java
编程实现一个方法,由参数给定一个字符串,统计并输出在该字符串中每个字符出现的次数。方法原型为:void countChar(String str)
展开
 我来答
百度网友090def6
2014-05-05 · TA获得超过2211个赞
知道小有建树答主
回答量:558
采纳率:100%
帮助的人:700万
展开全部

不好意思,没看清题目,使用数组,修改代码如下,原来的也保留,供参考:



private String[] chars; // 记录字符
private int[] count; // 记录总数

public void countChar(String str) {
// 初始化数组:这里数组长度,使用字符串长度,但实际可能用不上,因为字符串中可能重复
// 不想使用动态数组,比较麻烦,先演示
// 最好使用List,比数组方便
chars = new String[str.length()];
count = new int[str.length()];

for (int i = 0; i < str.length(); i++) {
// 判断字符是否存在
for (int idx = 0; idx < chars.length; idx++) {
if (chars[idx] == null) {
chars[idx] = str.substring(i, i + 1); // 截取1个长度
count[idx] = count[idx] + 1;
break;
}
if (chars[idx].equals(str.substring(i, i + 1))) {
count[idx] = count[idx] + 1;
break;
}
}
}

// 输出结果
for (int i = 0; i < chars.length; i++) {
if (chars[i] != null)
System.out.println("字符[" + chars[i] + "]出现次数:" + count[i]);
}

}

public static void main(String[] args) {
// 测试方法
LetterCount test = new LetterCount();
test.countChar("Adfasadfadaere你你好好");
}
}


原代码如下,有注释,请参考:

import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class LetterCount {
// 统计结果用,采用Character即char做键(Key)
private Map<Character, Integer> countMap = new HashMap<Character, Integer>();

public void countChar(String str) {
char[] chars = str.toCharArray();// 将字符串转换成字符char数组
// 循环,开始统计
for (char ch : chars) {
// 判断字符是否存在
if (!countMap.containsKey(ch)) {
// 不存在,在Map中加一个,并设置初始值为0
countMap.put(ch, 0);
}
// 计数,将值+1
int count = countMap.get(ch);
countMap.put(ch, count + 1);
}

// 输出结果
Set<Character> keys = countMap.keySet();
for(Character ch : keys){
System.out.println("字符" + ch + "出现次数:" + countMap.get(ch));
}

}

public static void main(String[] args) {
// 测试方法
LetterCount test = new LetterCount();
test.countChar("Adfasadfadaere"); // 注:不支持中文
}
}

亲,如果回答满意,请即时采纳,你的采纳是我回答的动力,谢谢!

追问

在最外层加一个 class LetterCount 就对了。。。太感谢你了。

追答
少复制了部分代码,不好意思
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式