黑马程序员技术交流社区
标题:
关于集合的一道编程题分享
[打印本页]
作者:
panpanpan138
时间:
2015-10-22 20:09
标题:
关于集合的一道编程题分享
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;
/*
* 需求:取出一个字符串中字母出现的次数。
* 如:字符串:"abcdekka27qoq" ,输出格式为: a(2)b(1)k(2)...
*/
public class Test1 {
public static void main(String[] args) {
//创建一个Sanner对象用于接收键盘录入的数据
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String s = sc.nextLine();
//创建一个TreeMap的对象,用于存储字母和字母出现的次数
TreeMap<Character,Integer> map = new TreeMap<>();
//将字符串转换为字符数组
char[] chs = s.toCharArray();
//增强for循环遍历字符数组
for (char c : chs) {
//判断遍历到的字符是不是字母
if((c>='A'&&c<='Z')||(c>='a'&&c<='z')){
//如果是字母,在map中寻找相应的字母,并返回对应的值
Integer num = map.get(c);
//判断该值是否为空,若为空,就将该字符作为键,值为1存入map
if(num==null){
map.put(c, 1);
//若不为空,则说明map中已经有该字符,此时只需要将该字符的对应值+1并重新存入map中替换原来的键值对即可
}else{
num++;
map.put(c,num);
}
}
}
//得到一个TreeMap键值对对象的集合
Set<Map.Entry<Character,Integer>> set = map.entrySet();
//增强for遍历这个集合,或得每一个键值对,并且输出
for (Map.Entry<Character, Integer> entry : set) {
System.out.println(entry.getKey()+"("+entry.getValue()+")");
}
}
}
复制代码
作者:
xu不是许
时间:
2015-10-22 20:27
之前还能看得懂java 现在就看不懂啦
作者:
叶发伟
时间:
2015-10-22 22:10
没有这能力呀
作者:
叶发伟
时间:
2015-10-22 22:11
没有这能力呀
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2