import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
/*
* 练习:
* abccdefffffg获取字符串中字母出现的次数。
* 希望打印结果;a(1)b(2)……
* 通过结果发现,每个字母多有对应的次数。
* 说明字母和次数之间都有映射关系。
* 思路:
* 1.将字符串转换成字符数组,因为要对每一个字母进行操作。
* 2.定义一个map结合,因为打印结果有顺序,所以使用treeMap集合。
* 3.便利字符数组。
* 将每一个字母作为健做查询map集合。
* 如果返回null,说明该字母集合已经存在并且有对应的值。
* 4.将map集合中的数据制定的字符串形式返回。
*
*
*
*/
public class MapTest3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s=charCount("abcdddddadefgf");
System.out.println(s);
}
public static String charCount(String str)
{
char[] chs=str.toCharArray();
TreeMap<Character,Integer> tm=new TreeMap<Character,Integer>();
for(int i=0;i<chs.length;i++)
{
Integer value=tm.get(chs[i]);
if(value==null)
tm.put(chs[i], 1);
else
{
value=value+1;
tm.put(chs[i], value);
}
}
//System.out.println(tm);
StringBuilder sb=new StringBuilder();
Set<Map.Entry<Character,Integer>> entrySet =tm.entrySet();
Iterator<Map.Entry<Character,Integer>> it=entrySet.iterator();
while(it.hasNext())
{
Map.Entry<Character,Integer> me=it.next();
Character ch=me.getKey();
Integer value=me.getValue();
sb.append(ch+"("+value+")");
}
return sb.toString();
}
}
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
/*
* 练习:
* abccdefffffg获取字符串中字母出现的次数。
* 希望打印结果;a(1)b(2)……
* 通过结果发现,每个字母多有对应的次数。
* 说明字母和次数之间都有映射关系。
* 思路:
* 1.将字符串转换成字符数组,因为要对每一个字母进行操作。
* 2.定义一个map结合,因为打印结果有顺序,所以使用treeMap集合。
* 3.便利字符数组。
* 将每一个字母作为健做查询map集合。
* 如果返回null,说明该字母集合已经存在并且有对应的值。
* 4.将map集合中的数据制定的字符串形式返回。
*
*
*
*/
public class MapTest3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s=charCount("abcdddddadefgf");
System.out.println(s);
}
public static String charCount(String str)
{
char[] chs=str.toCharArray();
TreeMap<Character,Integer> tm=new TreeMap<Character,Integer>();
for(int i=0;i<chs.length;i++)
{
Integer value=tm.get(chs[i]);
if(value==null)
tm.put(chs[i], 1);
else
{
value=value+1;
tm.put(chs[i], value);
}
}
//System.out.println(tm);
StringBuilder sb=new StringBuilder();
Set<Map.Entry<Character,Integer>> entrySet =tm.entrySet();
Iterator<Map.Entry<Character,Integer>> it=entrySet.iterator();
while(it.hasNext())
{
Map.Entry<Character,Integer> me=it.next();
Character ch=me.getKey();
Integer value=me.getValue();
sb.append(ch+"("+value+")");
}
return sb.toString();
}
}