利用Map统计字符串中字符出现的次数
时间:2022-06-13
本文章向大家介绍利用Map统计字符串中字符出现的次数,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
效果如下:
package cn.edu.nuc.map;
import java.util.HashMap;
import java.util.Map;
public class Test2 {
/**
* 统计字符串中字符出现的次数
* 1.对字符串进行切割
* 2.遍历字符串
* 3.创建map对象,通过字符查看map中是否含有该字符
* 若有该字符,value++;否则,添加该字符,设置value为1
* 4.遍历map 查看统计结果
* @param args
*/
public static void main(String[] args) {
String str="hello tom hello jerry hello tom hello jiji hello tom";
String[] strings = str.split("\s");
/**
* 方法一 用getOrDefault来设置map
*/
Map<String,Integer> map2 = new HashMap();
for (String string : strings) {
Integer integer = map2.getOrDefault(string, 0);
integer++;
map2.put(string, integer);
}
for (String string : map2.keySet()) {
System.out.println(string+" "+map2.get(string));
}
System.out.println("------------------------------------------");
/**
* 方法二 if-else创建
*/
Map<String,Integer> map1 = new HashMap();
for (String string : strings) {
Integer integer = map1.get(string);
if(integer==null)
map1.put(string,1);
else {
integer=integer+1;
map1.put(string,integer);
}
}
for (String string : map1.keySet()) {
System.out.println(string+" "+map1.get(string));
}
}
}
二、从一个文件中输入数据,进行分割后,再输出到另一个文件中
public class Test5{
@SuppressWarnings("resource")
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("d:/a/hello.txt");
FileOutputStream fos = new FileOutputStream("d:/a/result.txt");
//创建管道 用来接收数据
StringBuffer strb = new StringBuffer();
int len = 0;
while((len=fis.read())!=-1) {
strb.append(new String(new byte[] {(byte)len}));
}
System.out.println(strb);
//将接收到的数据转换成字符串,分割 并存到map中
String str = strb.toString();
String[] split = str.split("\s");
Map<String,Integer> map = new HashMap<>();
for (String string : split) {
if(!map.containsKey(string)) {
map.put(string, 1);
}else {
int value = map.get(string);
map.put(string, value+1);
}
}
//往文件里写入
String s ="";
for (String string : map.keySet()) {
System.out.println(string+":"+map.get(string));
s = s+string +":"+map.get(string)+"; ";
}
System.out.println(s);
//将String转换成字节进行写入
byte[] byte1 = s.getBytes();
fos.write(byte1);
fos.close();
fis.close();
}
}
- 闪回数据库不是“万金油”(r11笔记第73天)
- 修改Apache的超时设置,解决长连接请求超时问题
- Oracle 12cR2初体验(r11笔记第91天)
- MySQL中的undo截断(r11笔记第89天)
- Linux系统 df 命令显示异常、分区丢失问题解决
- MySQL主从、字典死锁、连接数的Python监控脚本
- MySQL Online DDL(二)(r11笔记第88天)
- 转-Android上面运行golang
- Golang适合高并发场景的原因分析
- 浅谈MySQL中的事务隔离级别(r11笔记第86天)
- 巧用echo命令解决Samba批量添加用户难题
- 分分钟搭建MySQL Group Replication测试环境(r11笔记第82天)
- MySQL 5.7 Group Replication错误总结(r11笔记第84天)
- 空结构体struct{}解析
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP中少用但是很好用的方法
- 使用一维数据构造简单卷积神经网络
- .Net Core微服务入门全纪录(完结)——Ocelot与Swagger
- PHP使用GD库生成文件
- 反向传播算法从原理到实现
- 基于EntityFramework 6 Code First实现多租户的一种思路
- PHP使用GD库生成柱状图
- PHP生成Mysql数据字典
- .Net Core in Docker极简入门(上篇)
- PHP一个比较完善的树形结构代码
- .Net Core in Docker极简入门(下篇)
- snoopy(强大的PHP采集类) 详细介绍
- 十分钟搭建自己的私有NuGet服务器-BaGet
- PHP遍历文件夹下的所有文件和文件夹
- Python 读写 csv 文件的三种方法