黑马程序员技术交流社区
标题:
java 面试题解答1
[打印本页]
作者:
purgatory
时间:
2015-9-21 21:40
标题:
java 面试题解答1
取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,
输出格式为:a(2)b(1)k(2)...
public static void main(String[] args) {
HashMap<Character,Integer> hm=new HashMap<>();//利用不同步的HashMap储存每个字符
String str="assdjkfhjkxcvhufhwuiehfsd"; //一堆字符
char[]carr=str.toCharArray();
for (char c :carr) {//遍历
if(hm.get(c)==null) //如果hm的c键没有添加,那么添加
hm.put(c, 1);
else
hm.put(c,hm.get(c)+1); //如果有了 次数累加
}
Set <Map.Entry<Character,Integer>> s1=hm.entrySet();
Iterator<Map.Entry<Character, Integer>> i=s1.iterator();
while(i.hasNext()){
Map.Entry<Character,Integer> e=i.next();
System.out.print(e.getKey()+"("+e.getValue()+") ");
}
}
作者:
sniper170fly
时间:
2015-9-21 23:45
public static void arrCount(String str)
{
char[] ch = str.toCharArray();
TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>();
for(int i=0;i<ch.length;i++)
{
Integer value = tm.get(ch[i]);
if(value==null)
{
tm.put(ch[i], 1);
}
else
{
value += 1;
tm.put(ch[i], value);
}
}
//定义一个StringBuilder
StringBuilder sb = new StringBuilder();
Set<Map.Entry<Character, Integer>> set = tm.entrySet();
Iterator<Map.Entry<Character,Integer>> it = set.iterator();
while(it.hasNext())
{
Map.Entry<Character, Integer> mp = it.next();
char key = mp.getKey();
int value = mp.getValue();
sb.append(key+"("+value+")");
}
System.out.println(sb.toString());
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2