java统计字符串数组Str[100]中所有不同的字符串及字符串在数组中出现的次数
1个回答
展开全部
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你你好好"); }}
原代码如下,有注释,请参考:
12345678910111213141516171819202122232425262728293031323334353637 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"); // 注:不支持中文 }}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询