黑马程序员技术交流社区
标题:
今天碰到的字符输出的次数问题(集合)
[打印本页]
作者:
JOKER0819
时间:
2015-8-23 23:19
标题:
今天碰到的字符输出的次数问题(集合)
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;
/*思路:1.键盘录入一个字符串
2.建立一个以字符为键,出现次数为值的并且能排序的集合,所以用TreeMap
3.判断字符是否出现过(值是否为null),如为null,则设定值为1;
如不为null,则值+1;
4.遍历TreeMap
5.创建一个StringBuilder来存数组,并转化成字符串输出。
*/
public class ChaZiMu {
public static void main(String[] args) {
//创建一个键盘录入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个你要查询的字符串:");
String s = sc.nextLine();
//把字符串转化成字符数组
char[] ch =s.toCharArray();
//创建一个TreeMap集合:根据集合的值来是否为null来判断字符是否出现
TreeMap<Character,Integer> tr = new TreeMap<Character,Integer>();
for(char chs:ch){
//遍历字符数组,求出每个字符的值;
Integer i = tr.get(chs);
//没有出现过的字符,给他的值设置为1;
if(i==null){
tr.put(chs, 1);
}
//出现过的,给他的值设置为i+1;
else{
tr.put(chs, i+1);
}
}
//创建一个StringBuilder来存储集合中的字符以及它的出现次数
StringBuilder sb = new StringBuilder();
Set<Character> set = tr.keySet();
for(Character ch1: set){
Integer i = tr.get(ch1);
sb.append(ch1+"(").append(i+")");
}
//把StringBuilder转化成字符串并输出
System.out.println(sb.toString());
}
}
作者:
pengbeilin
时间:
2015-8-23 23:34
写程序就应该这样子嘛~
作者:
JOKER0819
时间:
2015-8-29 23:08
pengbeilin 发表于 2015-8-23 23:34
写程序就应该这样子嘛~
谢谢夸奖,刚开始还是养成好习惯的好,我感觉。
作者:
taojunqiu225
时间:
2015-8-30 00:21
好习惯就是要规范吗
作者:
T-l-H、小生
时间:
2015-8-30 00:33
这题目,面试或者笔试考试,很常见~~~~~
作者:
lcq0301
时间:
2015-8-31 00:28
向你学习
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2