java中的接口是类吗
396
2022-08-16
Java案例使用集合方法实现统计任意字符串中字符出现的次数
需求:键盘录入一个字符串,统计其中各个字符出现的顺序
分析:
1.使用Scanner类获取一个字符串2.创建HashMap集合,如果追求统计字符的美观性,可以使用TreeMap3.遍历字符串得到每一个字符并将其作为TreeMap的键4.通过键去集合中找相对应的值,看返回值是什么?
返回null:说明该字符在集合中不存在,就将该字符为键,次数1为值进行存储
返回的不是null:说明该字符在集合中存在,就再次将该字符作为键,次数+1为值进行存储
5.遍历集合
public classMcnOcMVp TreeMapDemo {
public static void main(String[] args) {
//创建TreeMap集合对象
TreeMap
//创建Scanner对象
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串");
String s=sc.nextLine();
//遍历字符串
for (int i=0;i //获取每一个字符 char key =s.charAt(i); //拿到的每一个字符到集合中找相对应的值 Integer value=tm.get(key); //判断返回值 if (value==null){ tm.put(key,1); }else { value++; tm.put(key,value); } } //遍历集合并拼接 StringBuilder sb=new StringBuilder(); Set for (char key :keySet){ Integer value=tm.get(key); sb.append(key).append("(").append(value).append(")"); } String result = sb.toString(); System.out.println(result); } } 补充: import java.util.HashMap; import java.util.Scanner; import java.util.Set; public class MapTest { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); //键盘录入字符串 System.out.println("请输入一串字符"); //创建字符串对象,存储键盘输入的值 String line = scanner.nextLine(); //创建HashMap集合,键是character,值是Inter HashMap //循环遍历字符串,得到每个字符 for (int i = 0; i < line.length(); i++) { //通过charAt方法,将字符串的索引值,作为键添加到HashMap集合中 char key = line.charAt(i); //使用HashMap集合的get方法,对集合中的键(字符)进行判断 //创建Integer对象存储值 Integer value = hm.get(key); //返回值为空,将字符作为键,1作为存储值 if (value == null) { hm.put(key, 1); } else { //返回值不为空,说明此字符在集合中出现过,将字符作为键,值加一 // 重新存储键(字符)和对应的值 value++; hm.put(key, value); } } //创建StringBuilder字符串序列 StringBuilder sb = new StringBuilder();McnOcMVp //创建set集合对象,通过keyset方法获取键 Set //增强for循环遍历,获取键所对应的值 for (Character key : keyset) { //使用get方法获取到键所对应的值 Integer value = hm.get(key); //对序列进行拼接,使用append方法 sb.append(key).append("(").append(value).appenhttp://d(")"); } // 通过tostring方法返回StringBuilder此顺序中的数据的字符串,创建string对象接受此字符串 String result = sb.toString(); //打印结果 System.out.println(result); } }
//获取每一个字符
char key =s.charAt(i);
//拿到的每一个字符到集合中找相对应的值
Integer value=tm.get(key);
//判断返回值
if (value==null){
tm.put(key,1);
}else {
value++;
tm.put(key,value);
}
}
//遍历集合并拼接
StringBuilder sb=new StringBuilder();
Set
for (char key :keySet){
Integer value=tm.get(key);
sb.append(key).append("(").append(value).append(")");
}
String result = sb.toString();
System.out.println(result);
}
}
补充:
import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;
public class MapTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//键盘录入字符串
System.out.println("请输入一串字符");
//创建字符串对象,存储键盘输入的值
String line = scanner.nextLine();
//创建HashMap集合,键是character,值是Inter
HashMap
//循环遍历字符串,得到每个字符
for (int i = 0; i < line.length(); i++) {
//通过charAt方法,将字符串的索引值,作为键添加到HashMap集合中
char key = line.charAt(i);
//使用HashMap集合的get方法,对集合中的键(字符)进行判断
//创建Integer对象存储值
Integer value = hm.get(key);
//返回值为空,将字符作为键,1作为存储值
if (value == null) {
hm.put(key, 1);
} else {
//返回值不为空,说明此字符在集合中出现过,将字符作为键,值加一
// 重新存储键(字符)和对应的值
value++;
hm.put(key, value);
}
}
//创建StringBuilder字符串序列
StringBuilder sb = new StringBuilder();McnOcMVp
//创建set集合对象,通过keyset方法获取键
Set
//增强for循环遍历,获取键所对应的值
for (Character key : keyset) {
//使用get方法获取到键所对应的值
Integer value = hm.get(key);
//对序列进行拼接,使用append方法
sb.append(key).append("(").append(value).appenhttp://d(")");
}
// 通过tostring方法返回StringBuilder此顺序中的数据的字符串,创建string对象接受此字符串
String result = sb.toString();
//打印结果
System.out.println(result);
}
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~