黑马程序员技术交流社区
标题:
求解
[打印本页]
作者:
huangzhaoqing
时间:
2016-8-2 21:13
标题:
求解
分析以下需求,并用代码实现:
(1)利用键盘录入,输入一个字符串
(2)统计该字符串中各个字符的数量
(3)如:
用户输入字符串"If~you-want~to~change-your_fate_I_think~you~must~come-to-the-dark-horse-to-learn-java"
程序输出结果:-(9)I(2)_(3)a(7)c(2)d(1)e(6)f(2)g(1)h(4)i(1)j(1)k(2)l(1)m(2)n(4)o(8)r(4)s(2)t(8)u(4)v(1)w(1)y(3)~(6)
作者:
浅色寂语66
时间:
2016-8-3 00:31
在HashMap中没有出现,此时存入的该字符对应的value为 1 * * 如果当前的字符,在HashMap中有,此时存入的该字符对应的value+1
作者:
浅色寂语66
时间:
2016-8-3 00:32
刚刚回复错了(1)将字符串变成字符数组 * (2)遍历字符数组 * * 定义一个HashMap<Character,Integer> * * 将字符及对应的数量存入到HashMap中 * * 如果当前的字符,在HashMap中没有出现,此时存入的该字符对应的value为 1 * * 如果当前的字符,在HashMap中有,此时存入的该字符对应的value+1
作者:
浅色寂语66
时间:
2016-8-3 00:33
不知道对不对,你可以看看
public class homework2 {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
System.out.println("请输入您的字符串");
String str=sc.next();
//将字符串变成字符数组
char[] arr = str.toCharArray();
//遍历字符数组
//定义HashMap集合,来存入字符及对应出现的次数
HashMap<Character,Integer> hs = new HashMap<>();
for (char thisarr : arr) {
Integer num = hs.get(thisarr); //注意 此刻num为引用数据类型
if(num==null) {
hs.put(thisarr, 1);
} else {
hs.put(thisarr, num+1);
}
}
System.out.println(hs);
//将HashMap集合中的数据封装成a(2)b(1)k(2)...
//利用StringBuilder完成字符串的拼装
StringBuilder sb = new StringBuilder();
for (Map.Entry<Character,Integer> entry : hs.entrySet()) {
sb.append(entry.getKey()).append("(").append(entry.getValue()).append(")");
}
System.out.println(sb.toString());
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2