java用map统计字符串中每个字符出现的次数,Java 利用Map集合计算一个字符串中每个字符出现的次数...

步骤分析

1、给出一串字符串,字符串中可以包含字母、数字、符号等等。

2、创建一个Map集合,key是字符串中的字符,value是字符的个数。

3、遍历字符串,获取每一个字符。

5、使用获取到的字符,去集合Map判断key(字符)是否存在。

6、假如key(字符)存在,那么该key对应的value数值增加1,即该字符的数量加一。

7、假如key(字符)不存在,value的值设为1,并将key-value添加到Map集合中。

8、遍历Map集合,输出每个字符个数的结果。

代码实现

创建一个CharNumber类,在类中定义keyValue方法,计算字符串中每个字符的个数

public class CharNumber {

/**

* 计算字符串中每个字符的个数

* @param string 要被计算字符个数的字符串

* @return 的Map集合

*/

public static HashMap keyValue(String string) {

// 字符串转换为字符数组

char[] chars = string.toCharArray();

// 创建一个Map集合用来存放记录

HashMap hashMap = new HashMap<>();

// 遍历字符串,获取每一个字符

for (char c : chars) {

// 使用获取到的字符,去Map集合判断key是否存在

// 利用Map集合的containsKey()方法,判断key是否存在

// 如果存在 value ++,如果不存在 value = value

if (hashMap.containsKey(c)) {

// key存在,获取key对应的value,数值增加一,然后再更新到集合中

Integer value = hashMap.get(c);

value ++;

hashMap.put(c, value);

} else {

// key不存在,将key添加到Map集合中,且其对应的value为1

hashMap.put(c, 1);

}

}

return hashMap;

}

}

创建一个CharNumber类,在类中定义iteratorMap方法,遍历输出计算结果

public class CharNumber {

/**

* 遍历输出Map集合

* @param hashMap 的Map集合

*/

public static void iteratorMap(HashMap hashMap) {

// 调用Map集合的entrySet()方法,获取集合Map的Key-Value,赋值给Set集合

Set> set = hashMap.entrySet();

// 创建Set集合的迭代器

Iterator> kvIterator = set.iterator();

// 迭代输出Set集合

// hasNext():是否存在下一个元素

// next():获取下一个元素

while (kvIterator.hasNext()) {

Map.Entry kv = kvIterator.next();

System.out.println("字符'" + kv.getKey() + "'的个数是:" + kv.getValue());

}

}

}

测试一下CharNumber类,随便输入一串字符串,计算每个字符的个数

public class DemoCharNumber {

public static void main(String[] args) {

Scanner scn = new Scanner(System.in);

System.out.print("请输入一个字符串:");

String string = scn.next();

CharNumber.iteratorMap(CharNumber.keyValue(string));

}

}

运行代码(注意,不能输入空格):

请输入一个字符串:dafsdaganjsda!!!!!!

字符'a'的个数是:4

字符'!'的个数是:6

字符's'的个数是:2

字符'd'的个数是:3

字符'f'的个数是:1

字符'g'的个数是:1

字符'j'的个数是:1

字符'n'的个数是:1

代码总和

CharNumber类

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Set;

public class CharNumber {

public static HashMap keyValue(String string) {

char[] chars = string.toCharArray();

HashMap hashMap = new HashMap<>();

for (char c : chars) {

if (hashMap.containsKey(c)) {

Integer value = hashMap.get(c);

value ++;

hashMap.put(c, value);

} else {

hashMap.put(c, 1);

}

}

return hashMap;

}

public static void iteratorMap(HashMap hashMap) {

Set> set = hashMap.entrySet();

Iterator> kvIterator = set.iterator();

while (kvIterator.hasNext()) {

Map.Entry kv = kvIterator.next();

System.out.println("字符'" + kv.getKey() + "'的个数是:" + kv.getValue());

}

}

}

DemoCharNumber类

// 测试

import java.util.Scanner;

public class DemoCharNumber {

public static void main(String[] args) {

Scanner scn = new Scanner(System.in);

System.out.print("请输入一个字符串:");

String string = scn.next();

CharNumber.iteratorMap(CharNumber.keyValue(string));

}

}

b739ec46bb5c46d9c0aa4ce35ba1ea56.png

关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

[Java 利用Map集合计算一个字符串中每个字符出现的次数]http://www.zyiz.net/tech/detail-99354.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值