先将字符串转化成字符数组,然后进行遍历,因为我们需要确定各个字符的个数,因此使用到了Map集合,因为Map集合中键是无法重复的,因此我们将字符看成为键,将个数看成为值,然后判断Map集合中是否存在该字符的键,如果存在,那么就在值的后面加一即可,如果不存在哪么新建一个键后面填上个数1
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class XinJiHe {
/**
* 定义出任意一个字符串, 例如: ”abcdsscchdyti12” ,
* 计算字符串中每个字符出现的次数,最终获取到的结果 :
* a有1个 b有1个 c有3个...
*/
public static void main(String[] args) {
Map<Character,Integer> m = new HashMap<>();
String s = "abcdsscchdyti12";
//转成数组进行遍历获取到每个字符
char[] cArray = s.toCharArray();
for (int index = 0; index < cArray.length;index++){
//将获取到的值作为键
//计数作为值
char c = cArray[index];
//判断集合中是否存在键
if (m.containsKey(c)){
//如果存在,那么在值的后面加1
m.put(c,m.get(c)+1);
//如果不存在那么就创建一个键值用于记录
}else {
m.put(c,1);
}
}
//m.keySet();返回集合中包含键的Set集合
Set<Character> s1 = m.keySet();
for (Character key:s1){
//通过集合遍历得到值
Integer value = m.get(key);
System.out.println(key+"有"+value+"个");
}
}
}
版权声明:本文为qq_56001285原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。