黑马程序员——获取该字符串中的字母出现的次数

------- android培训、 java培训、期待与您交流! ----------
package com.itheima.prepare.day13;

import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

/**
 * 练习: "sdfgzxcvasdfxcvdf"获取该字符串中的字母出现的次数。 希望打印的结果:a(1)c(2).....
 * 通过结果发现,每一个字母都有对应的次数。 说明字母和次数之间都有映射关系。 注意了,当发现有映射关系时,可以选择map集合。
 * 因为map集合中存放就是映射关系。 怎么使用mpa集合呢? 当数据之间存在这映射关系时,就要先想map集合。 思路:
 * 1.将字符串转换成字符数组。因为要对每一个字母进行操作。 2.定义一个map集合,因为答应结果的字母有顺序,所以使用treemap集合。
 * 3.遍历字符数组。 将每一个字母作为键去查map集合 如果返回null,将该字母和1存入到map集合中。
 * 如果返回不是null,说明该字母在map集合中已经存在并有对应次数。
 * 那么就回去该次数并进行自增,然后将该字母和子增厚的次数润如到map集合中。覆盖掉原来键所对应的值。 将map集合中是数据变成指定的字符串形式返回。
 * 
 * @author Auser
 * 
 */

public class Test02 {

	public static void main(String[] args) {
		Map<Character, Integer> map = new TreeMap<Character, Integer>();
		
		String s = new String("sdfgzxcvasdfxcvdf人");
		byte[] b = s.getBytes();
		// char[] c = s.toCharArray();更好些
		for (int i = 0; i < b.length; i++) {
			char c = (char)b[i];
			if (map.get(c)==null) {
				map.put(c, 1);
			}else {
				map.put(c, map.get(c)+1);
			}
		}
		
		Set<Character> set =  map.keySet();
		Iterator<Character> it = set.iterator();
		while (it.hasNext()) {
			Character character = (Character) it.next();
			System.out.println(character+"----"+map.get(character));
		}
		
		char[] c = s.toCharArray();
		for (int i = 0; i < c.length; i++) {
			System.out.println(c[i]);
		}
		System.out.println(c);
	}
}


 

------- android培训、 java培训、期待与您交流! ----------

你可能感兴趣的:(String)