统计字符串的各元素个数的两种实现方式

方法一:

//判断 各元素出现的次数  
	public static void CounterLetter(String s){
		//转成字符数组
		char []cs=s.toCharArray();
		//用boolean数组表示每个元素的计数状态
		boolean[] b=new boolean[cs.length];
		//初始化true 表示未计数,false表示已经计数
		for (int i = 0; i < b.length; i++) {
			b[i]=true;
		}
		//遍历字符数组
		for (int i = 0; i < cs.length; i++) {
			//判断是否计数
			if(b[i]){
				//没有计数
				int count=1;
				//转字符
				char c=s.charAt(i);
				//
				for(int j=i+1;j<cs.length;j++){
					//判断后面的元素是否相等
					if(c==cs[j]){
						count ++;
						b[j]=false;
					}
				}
				//输出
				System.out.println(c+":"+count);
			}
		}	
	}	
}

方法二:

import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;

public class PracticeDemo {
	public static void main(String[] args) {
		
		// 1.让用户输入字符串
		String s = new Scanner(System.in).nextLine();
		
		// 2.创建一个map
		Map<Character,Integer> map = new HashMap<>(15,0.1f);
		
		// 3.遍历字符串
		for (int i = 0;i < s.length();i++){
			// 4.获取字符  
			char c = s.charAt(i);
			// 5.判断map中是否有对应的key是c
			if (map.containsKey(c)){
				// 获取value
				Integer value = map.get(c);
				value++;
				map.put(c, value);
			}else{
				map.put(c, 1);
			}
		}
		
		for (Entry<Character,Integer> en : map.entrySet()){
			System.out.println(en.getKey() + "\t" + en.getValue());
		}
	}
}

猜你喜欢

转载自blog.csdn.net/xianrenqiu1234/article/details/86599966