本帖最后由 帅气的冬瓜 于 2013-11-5 23:17 编辑
当输入一串字符串,要获取每个字母的次数, 关于下面这几句代码,没理解过来
1 将每一个字母作为键去map集合
2 如果返回null,将该字母和”1“存入到map中
3 如果返回不是null,说明该字母在map集合中已经存在并有对应次数。那么就获取该次数并进行自增。
import java.util.*;
class MapTest
{
public static void main(String[] args)
{
String s=charCount("abcdhbavcdcb");
System.out.println(s);
}
public static String charCount(String str)
{
char[] chs=str.toCharArray( );
TreeMap<Character,Integer> tm=new TreeMap<Character,Integer>();
int count=0;
for(int x=0;x<chs.length;x++)
{
if (!(chs[x]>='a'&& chs[x]<='z'||chs[x]>='A'&&chs[x]<='Z'))
continue;
Integer value=tm.get(chs[x]);
if (value!=null)
count=value;
count++;
tm.put(chs[x],count);
count=0; //清零之后,count++;是否变化,value是否变化。是怎样循环的?
}
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();
}
}
我问的就是当count=0;清零之后,value 和 count++ 的值有什么变化?具体点,谢了!
|