/*统计字符串中的字符出现个数
* (1) 输入你想要统计的字符串,创建HashMap集合。键是Character 值是Interge都是基本数据类型中的包装类
*
*
* (2) 利用for循环变量遍历每一个字符并将被一个字符都设置为key,value统计次数,相当于执行map.put();
* for(int i=0;i<line.length;i++){
*char key=line.charAt(i);
*Interge value=map.get(key);
*if(value==null){
*
* map.put(character,1);
*
*
* }
*
* else{
*
* value++;
*
* map.put(character,value);
*
* }
*
* }
*
*(3)将得到的key和value用方法进行拼接
*StringBuilder sb=new StringBuilder();
*Set<Character> map_key=map.KeySet();
*for(char key_start:map_key){
*
*
*sb.append(key_start).append("(").append(map.get(key_start)).append(")");
*
*
*}
*
*System.out,printIn(sb.toString());
*
*
*/
全部代码如下
package com.student2;
import java.util.*;
public class test1{
public static void main(String[] args) {
System.out.println("请输入一行字符串");
Scanner sc = new Scanner(System.in);
String line=sc.nextLine();
//HashMap<Character,Integer> map=new HashMap<>();
Map<Character,Integer> map=new HashMap<>();
for(int i=0;i<line.length();i++) {
//将遍历到的每个值记作key,如果
char key=line.charAt(i);
Integer value=map.get(key);
if(value==null) {
map.put(key, 1);
}
else {
value++;
map.put(key, value);
}
}
//遍历结束后将得到value保存,将key保存在
StringBuilder sb=new StringBuilder();
Set<Character> str =map.keySet();
//利用key得到value //foreach循环中,会依次数组或容器中取出一个元素保存在冒号前面申明的变量中去然后执行循环体,直到数组或循环体遍历为止。
for(Character key_start:str ) {
//Integer value= map.get(key_start);
sb.append(key_start).append("(").append(map.get(key_start)).append(")");
}
//String result= sb.toString();
System.out.println(sb.toString());
}
}
11-10
742
03-30
266
03-14
1万+
11-07
1149