Java案例使用集合方法实现统计任意字符串中字符出现的次数

网友投稿 376 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集合对象

TreeMaptm=new 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 keySet=tm.keySet();

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 hm = new 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 keyset = hm.keySet();

//增强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 keySet=tm.keySet();

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 hm = new 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 keyset = hm.keySet();

//增强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小时内删除侵权内容。

上一篇:2021最新Java JDK1.8的安装超详细教程
下一篇:Java案例分享
相关文章

 发表评论

暂时没有评论,来抢沙发吧~