黑马程序员技术交流社区
标题:
哪位大师给指点指点
[打印本页]
作者:
Array先生
时间:
2016-9-21 22:57
标题:
哪位大师给指点指点
2.分析以下需求,并用代码实现:
(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)
作者:
Fate_stay
时间:
2016-9-21 23:09
我现改着做的,.. 为了分也是拼了..
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串:");
String str = sc.next();
// 创建一个map对象
HashMap<Character,Integer> map = new HashMap<>();
char[] ch_arr = str.toCharArray();
for (char c : ch_arr) {
if(map.containsKey(c)) {
// 若已经存在字符, 则 值加1次
int times = map.get(c);
map.put(c, times+1);
} else {
// 若不存在,值:存1次
map.put(c,1);
}
}
Set<Entry<Character,Integer>> set = map.entrySet();
for (Entry<Character, Integer> entry : set) {
method(map,entry.getKey());
}
}
public static void method(HashMap<Character,Integer> map, char c) {
System.out.print(c+"("+map.get(c)+")");
}
}
作者:
LShu
时间:
2016-9-22 00:03
package com.heima.practise;
import java.util.TreeMap;
import java.util.Scanner;
/**
*2.分析以下需求,并用代码实现:
* (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)
* @author John
* 分析:
* 1.创建键盘录入对象,
* 2,将字符串转变成一个字符数组
* 3,创建一个TreeMap集合,键为Charactor类型,值为Integer类型
* 4,遍历字符数组,获取数组中的每一个字符,并将其存入到map集合中,存入集合中之前,判断集合中是否存在与该字符c相同的字符
* 相同:将键为c,值为集合.get(c)+1存入集合中
* 不相同:将键为c,值为1存入集合中
* 5,遍历集合,将集合中的元素打印到控制台上
*/
public class GetCount {
public static void main(String[] args) {
//创建键盘录入对象
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个字符串");
String line = scanner.nextLine();
//将字符串转变成一个字符数组
char[] arr = line.toCharArray();
//3,创建一个HashMap集合,键为Integer类型,值为Character类型
TreeMap<Character, Integer> hm = new TreeMap<>();
/*
* 遍历字符数组,获取数组中的每一个字符,并将其存入到map集合中,存入集合中之前,判断集合中是否存在与该字符c相同的字符
* 相同:将键为c,值为集合.get(c)+1存入集合中
* 不相同:将键为c,值为1存入集合中
*/
for (int i = 0; i < arr.length; i++) {
char c = arr[i];
if (!hm.containsKey(c)) {
hm.put(c, 1);
}else {
hm.put(c, hm.get(c) + 1);
}
}
//遍历map集合获取集合中的元素,并打印到控制台上
for (char key : hm.keySet()) {
int value = hm.get(key);
System.out.print(key + "(" + value + ")");
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2