黑马程序员技术交流社区
标题:
关于用Map集合来将字符串中字符出现字数的实现
[打印本页]
作者:
默默丶
时间:
2014-9-11 21:26
标题:
关于用Map集合来将字符串中字符出现字数的实现
import java.util.*;
public class MapTest2
{
public static void main(String[] args)
{
String s = print("asfkjahfjkkslhfkjshfaskjhf");//建立对象S指向方法调用之后的字符串
System.out.println(s);//打印字符串
}
public static String print(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++)//从字符数组从头到尾遍历
{
Integer value =tm.get(chs[x]);//定义出value
if(value!=null)
count = value;//当这一对元素没出现过时,将value赋给count
count++;
tm.put(chs[x], count);//然后第一次为1 以后依次增加
count=0; //租后将计数器重新归0
}
StringBuilder sb =new StringBuilder();//定义一个StringBuilder来操控字符串
Set<Character> keySet = tm.keySet();//set集合具有迭代器可以进行遍历
Iterator<Character> it = keySet.iterator();//定义迭代器
while(it.hasNext())//遍历开始
{
char ch =it.next();//获取key
Integer value = tm.get(ch);//获取value
sb.append(ch+"("+value+")");//在原有的字符串后面添加新的字符串
}
return sb.toString();//返回一个字符串
}
}
a(3)f(5)h(4)j(4)k(5)l(1)s(4)
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2