java 获取String出现最多次数的字段
package hello; import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry; public class MyAiPaWorker {
/**
* java一个字符串中出现次数最多的字符以及次数
* @param args
*/
public static void main(String[] args) {
String str = "abccadbcadbc";
Map<Character,Integer> map = getNumberOfCharacters(str);
sortMap(map);
} /**
* 将字符串放进map并将字母作为key值,将出现次数作为value值
* @param str 字符串
*/
public static Map<Character,Integer> getNumberOfCharacters(String str){
char [] chars = str.toCharArray();// 转化成char[] 数组
// Character 类在对象中包装一个基本类型 char 的值
Map<Character,Integer> map = new HashMap<Character,Integer>();
// 循环获取每个字符出现的个数
for(char c:chars){
if(map.containsKey(c)){
map.put(c, map.get(c)+1);
}else{
map.put(c, 1);
}
}
//直接输出字符以及出现的个数
// TODO map.entrySet()返回map中各个键值对映射关系的集合。
// Map.Entry是Map声明的一个内部接口,此接口为泛型,
// 定义为Entry<K,V>。它表示Map中的一个实体(一个key-value对)
for(Map.Entry<Character,Integer> entry :map.entrySet()){
System.out.println("字符是"+entry.getKey()+"出现的次数是"+entry.getValue());
}
return map;
} //排序map
private static void sortMap(Map<Character, Integer> map) {
List<Map.Entry<Character, Integer>> list = new ArrayList<Map.Entry<Character,Integer>>(map.entrySet());
Collections.sort(list,new Comparator<Map.Entry<Character, Integer>>() {
//倒序排列
@Override
public int compare(Entry<Character, Integer> o1,
Entry<Character, Integer> o2) {
return o2.getValue().compareTo(o1.getValue());
}
});
//打印出现自出的字符以及次数
System.out.println("出现次数最多的字符"+list.get(0).getKey()+"==次数为"+list.get(0).getValue());
}
}
java 获取String出现最多次数的字段的更多相关文章
- java后台如何获取String 类型 json里的字段值
首先把获取到的数据转为json String sbody=Json.getGson().toJson(resp.getResponseBody()); Huanxin 这个类是 json数据对应字段的 ...
- java 获取String中的数字
随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们如何把其中的数字提取出来呢?大致有以下几种方法, ...
- JDK1.8源码(三)——java.lang.String 类
String 类也是java.lang 包下的一个类,算是日常编码中最常用的一个类了,那么本篇博客就来详细的介绍 String 类. 1.String 类的定义 public final class ...
- Java技术——String类为什么是不可变的
0. 前言 如果一个对象,在它创建完成之后不能再改变它的状态,包括对象内的成员变量.基本数据类型的值等等.那么这个对象就是不可变的.众所周知String类就是不可变的.转载请注明出处为SEU_Ca ...
- Java字符串——String深入
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10840495.html 一:字符串的不可变性 1.可变 与 不可变 辨析 Java中的对象按照创建后,对象的 ...
- Linux下统计出现次数最多的指定字段值
假设桌面上有一个叫“data.txt”的文本,内容如下: {id='xxx' info='xxx' kk='xxx' target='111111' dd='xxx'}{id='xxx' info=' ...
- Java 获取一个字符串中,另一个字符串出现的次数
Java 获取一个字符串中,另一个字符串出现的次数 思想: 1. indexOf到字符串中到第一次出现的索引2. 找到的索引+被找字符串长度,截取字符串3. 计数器++ 代码实现: public cl ...
- 使用 Java 查找字符串中出现次数最多的字符以及出现的次数?
使用 Java 查找字符串中出现次数最多的字符以及出现的次数? import java.util.HashMap; import java.util.Map; public class TestStr ...
- Java求字符串中出现次数最多的字符
Java求字符串中出现次数最多的字符 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51933611 Java ...
随机推荐
- 【和孩子一起学编程】 python笔记--第三天
第十章 游戏时间:Skier 首先安装pygame,直接在cmd命令控制框里键入pip install pygame就可以了 代码: import pygame, sys, random skier_ ...
- 每天一个linux命令:mv(7)
mv mv命令可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 在跨文件系统移动文件时,mv先拷贝,再将原有文件删除, ...
- LCD驱动程序架构和分析
一.LCD驱动程序架构 1.裸机驱动代码分析 ①LCD初始化:控制器初始化,端口初始化,指明帧缓冲 ②LCD图形显示:将图形数据写入帧缓冲 void lcd_init() { lcd_port_ini ...
- SCP-bzoj-1058
项目编号:bzoj-1058 项目等级:Safe 项目描述: 戳这里 特殊收容措施: STL好题.维护两个set,一个存储数列里相邻元素差,另一个存储整个数列. 对于MIN_SORT_GAP操作,维护 ...
- jdbc——java连接sql server 过程
首先要去下一个关于sql的驱动jar包,叫做sqljdbc4.jar 然后更新项目的build path,加入这个jar包 前几步有问题的看该博客 https://blog.csdn.net/qq24 ...
- VIEW当中自定义属性的使用
主要有三种方法可以实现自定义属性. 第一种方法,直接设置属性值,通过attrs.getAttributeResourceValue拿到这个属性值. (1)在xml文件中设置属性值 [html] vie ...
- SpringMVC·form表单Date类型问题导致的400问题
问题描述 前端传yyyy-MM-dd hh:mm:ss格式的时间其实是String类型导致JavaBean中的Date类型Setter报错,从而导致api请求400. 问题解决 我的解决方式: 在对应 ...
- Android如何正确引用其它jar包 (转)
转:http://blog.csdn.net/liranke/article/details/17226083 Android项目常常需要引用自定义的或者外部的jar包,这里提供一些经验,供参考. 一 ...
- Hadoop 家族技能图谱skill-map
----# Hadoop 家族技能图谱- Hadoop- Zookeeper- Avro- Chukwa- Ambari- Whirr- Bigtop- HCatalog- Hue- HBase- P ...
- 【扩展lucas定理】
洛谷模板题面:https://www.luogu.org/problemnew/show/P4720 扩展卢卡斯被用于解决模数为合数情形下的组合数问题. 首先我们把模数mod质因数分解,解决模每个素数 ...