摘要:
分析以下需求,并用代码实现:
(1)利用键盘录入,输入一个字符串
(2)统计该字符串中各个字符的数量
第一种写法:
如:
用户输入字符串:deefgabc
程序输出结果:{a=1, b=1, c=1, d=1, e=2, f=1, g=1}
参考代码:
package com.gx.demo;
import java.util.Scanner;
import java.util.TreeMap;
public class Test {
public static void main(String[] args) {
// 键盘录入字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
// 接收字符串
String str = sc.nextLine();
// 用于统计字符串
String newSet = getSet(str);
System.out.println(newSet);
}
private static String getSet(String str) {
// 1,将字符串转换为字符数组
char[] chars = str.toCharArray();
// 2,创建一个map集合,将字符和出现的次数存储到集合中,并排序
TreeMap<Character, Integer> map = new TreeMap<Character, Integer>();
// 3,遍历字符数组
for (char c : chars) {
map.put(c, map.get(c) != null ? map.get(c) + 1 : 1);
}
// 4,返回集合形式
return map.toString();
}
}
输出结果:
请输入一个字符串:
deefgabc
{a=1, b=1, c=1, d=1, e=2, f=1, g=1}
第二种写法:
如:
用户输入字符串:deefgabc
程序输出结果:a(1)b(1)c(1)d(1)e(2)f(1)g(1)
参考代码:
package com.gx.demo;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
public class Test2 {
public static void main(String[] args) {
// 键盘录入字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
// 接收字符串
String str = sc.nextLine();
// 用于统计字符串
String newSet = getSet(str);
System.out.println(newSet);
}
private static String getSet(String str) {
// 1,将字符串转换为字符数组
char[] chars = str.toCharArray();
// 2,创建一个map集合,将字符和出现的次数存储到集合中,并排序
TreeMap<Character, Integer> map = new TreeMap<Character, Integer>();
// 3,遍历字符数组
for (char c : chars) {
map.put(c, map.get(c) != null ? map.get(c) + 1 : 1);
}
// 4,创建StringBuffer
StringBuffer sb = new StringBuffer();
// 5,遍历map集合
for (Map.Entry<Character, Integer> entry : map.entrySet()) {
sb.append(entry.getKey()).append("(").append(entry.getValue()).append(")");
}
// 6,返回StringBuffer的字符串形式
return sb.toString();
}
}
输出结果:
请输入一个字符串:
deefgabc
a(1)b(1)c(1)d(1)e(2)f(1)g(1)