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

需求:键盘录入一个字符串,统计其中各个字符出现的顺序

分析:

  • 1.使用Scanner类获取一个字符串
  • 2.创建HashMap集合,如果追求统计字符的美观性,可以使用TreeMap
  • 3.遍历字符串得到每一个字符并将其作为TreeMap的键
  • 4.通过键去集合中找相对应的值,看返回值是什么?

返回null:说明该字符在集合中不存在,就将该字符为键,次数1为值进行存储

返回的不是null:说明该字符在集合中存在,就再次将该字符作为键,次数+1为值进行存储

  • 5.遍历集合
public class TreeMapDemo {
    public static void main(String[] args) {
        //创建TreeMap集合对象
        TreeMap<Character,Integer>tm=new TreeMap<Character,Integer>();
        //创建Scanner对象
​
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String s=sc.nextLine();
        //遍历字符串
        for (int i=0;i<s.length();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<Character> 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<Character, Integer> hm = new HashMap<Character, Integer>();
        //循环遍历字符串,得到每个字符
         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();
         //创建set集合对象,通过keyset方法获取键
        Set<Character> keyset = hm.keySet();
         //增强for循环遍历,获取键所对应的值
         for (Character key : keyset) {
             //使用get方法获取到键所对应的值
             Integer value = hm.get(key);
             //对序列进行拼接,使用append方法
             sb.append(key).append("(").append(value).append(")");
         }
         // 通过tostring方法返回StringBuilder此顺序中的数据的字符串,创建string对象接受此字符串
        String result = sb.toString();
       //打印结果
        System.out.println(result);
    }
 }

到此这篇关于Java案例使用集合方法实现统计任意字符串中字符出现的次数的文章就介绍到这了,更多相关Java集合统字符出现次数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java中Json字符串直接转换为对象的方法(包括多层List集合)

    使用到的类:net.sf.json.JSONObject 使用JSON时,除了要导入JSON网站上面下载的json-lib-2.2-jdk15.jar包之外,还必须有其它几个依赖包:commons-beanutils.jar,commons-httpclient.jar,commons-lang.jar,ezmorph.jar,morph-1.0.1.jar 下面是例子代码: // JSON转换 JSONObject jsonObj = JSONObject.fromObject(jsonStr

  • java8如何根据某一属性条件快速筛选list中的集合

    目录 根据某一属性条件快速筛选list中的集合 1.创建个Student对象 2.编写测试类 list 根据实体属性搜索 代码 测试 根据某一属性条件快速筛选list中的集合 1.创建个Student对象 public class Student { private String name;//姓名 private Integer age;//年龄 private int sex;//性别 private String professional;//专业 public String getNam

  • Java基础必学TreeSet集合

    一.特点 1.元素有序,这里的顺序不是指的存储和取出的顺序,而是按照一定规则进行排序,具体排序方法要看构造方法 TreeSet():无参构造,根据元素的自然顺序排序也就是从小到大的排序方式进行排序 TreeSet(Comparator comparator):带参构造,根据指定的比较器进行排序 2.没有带索引的方法,所以不能使用for循环,可以使用增强for循环或者迭代器 3.由于是Set集合,所以是不包含重复元素的集合 使用无参构造进行存储数据并遍历练习: public class TreeS

  • Java 详解Map集合之HashMap和TreeMap

    目录 HashMap 创建HashMap 添加元素 访问元素 删除元素 TreeMap 创建TreeMap 添加元素 访问元素 删除元素 HashMap.TreeMap区别 Map接口储存一组成对的键-值对象,提供key(键)到value(值)的映射,Map中的key不要求有序,不允许重复.value同样不要求有序,但可以重复.最常见的Map实现类是HashMap,他的储存方式是哈希表,优点是查询指定元素效率高. Map接口被HashMap和TreeMap两个类实现. HashMap HashM

  • Java案例之HashMap集合存储学生对象并遍历

    一.需求:创建一个HashMap集合,键是学号(String),值是学生对象(Student),存储三个键值对元素,并遍历 分析: 1.定义学生类 2.创建HashMap集合对象 3.创建学生对象 4把学生添加到集合中 5.遍历集合 public class StudentDemo {   public static void main(String[] args) {       //创建Map集合对象       Map<String,Student> m=new HashMap<S

  • Java案例分享-集合嵌套

    一.需求:创建一个ArrayList集合,存储三个元素,每一个元素都是HashMap,每一个HashMap的键和值都是String,并遍历 分析: 1.创建一个ArrayList集合 2.创建一个HashMap集合键和值都是String 3.将HashMap作为元素添加到ArrayList中 4.遍历 public static void main(String[] args) {       //创建ArrayList集合       ArrayList<HashMap<String,Str

  • Java 切割字符串的几种方式集合

    目录 Java 切割字符串的几种方式 1.StringTokenizer切割 2...split("*")分割 3.调用String自己的api subString() java优雅的切割字符串 切割字符串 使用方法 Java 切割字符串的几种方式 //以data 为案例参数. String data = "2019-01-08 21:55 136 \n2019-01-08 22:00 86 \n2019-01-08 22:04 136 \n2019-01-08 22:09

  • Java基础Map集合详析

    目录 一.概述 二.创建Map集合的对象方式 四.Map的获取方法 五.Map集合的遍历方式 方式一: 方式二: 一.概述 Interface Map k:键的类型:V:值的类型 将键映射到值的对象:不能包含重复的键:每个键可以映射到最多一个值 二.创建Map集合的对象方式 1.使用多态的方式 2.具体实现类HashMap public static void main(String[] args) {       //创建Map集合对象       Map<String,String> m=

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

    需求:键盘录入一个字符串,统计其中各个字符出现的顺序 分析: 1.使用Scanner类获取一个字符串 2.创建HashMap集合,如果追求统计字符的美观性,可以使用TreeMap 3.遍历字符串得到每一个字符并将其作为TreeMap的键 4.通过键去集合中找相对应的值,看返回值是什么? 返回null:说明该字符在集合中不存在,就将该字符为键,次数1为值进行存储 返回的不是null:说明该字符在集合中存在,就再次将该字符作为键,次数+1为值进行存储 5.遍历集合 public class Tree

  • Java编程实现统计一个字符串中各个字符出现次数的方法

    本文实例讲述了Java编程实现统计一个字符串中各个字符出现次数的方法.分享给大家供大家参考,具体如下: import java.util.Iterator; import java.util.Set; import java.util.TreeMap; public class TreeMapDemo { //统计一个字符串中相应字符出现的次数 public static void main(String[] args) { // System.out.println("我们测试结果:"

  • java统计字符串中指定元素出现次数方法

    本文实例讲解了统计文本中某个字符串出现的次数或字符串中指定元素出现的次数方法,分享给大家供大家参考,具体内容如下 运行效果图: 程序查找的上此文件带"a"的字符在多少次 具体代码如下 package com.zuidaima.util.string; import java.io.*; public class CountString { public static int count(String filename, String target) throws FileNotFoun

  • java实现统计字符串中字符及子字符串个数的方法示例

    本文实例讲述了java实现统计字符串中字符及子字符串个数的方法.分享给大家供大家参考,具体如下: 这里用java实现统计字符串中的字符(包括数字.大写字母.小写字母以及其他字符)个数,以及字符串的子字符串的个数. 运行效果图如下: 具体代码如下: import java.util.Scanner; public class Counter { static Scanner scanner = new Scanner(System.in); public static void count(Str

  • Java统计字符串中字符出现次数的方法示例

    本文实例讲述了Java统计字符串中字符出现次数的方法.分享给大家供大家参考,具体如下: package com.wenzhi; import java.util.Scanner; public class Test01 { public static void main(String args[]) { Scanner scan = new Scanner(System.in); System.out.println("请你输入字符"); String str = scan.nextL

  • Python实现统计给定列表中指定数字出现次数的方法

    本文实例讲述了Python实现统计给定列表中指定数字出现次数的方法.分享给大家供大家参考,具体如下: 直接看实现: #!usr/bin/env python #encoding:utf-8 ''''' __Author__:沂水寒城 功能:给定一个列表计数指定数字出现的所有次数 ''' def count_num_func(num_list,num): ''''' 计数指定数字 ''' split_list=[] for one in num_list: split_list+=list(str

  • Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】

    本文实例讲述了Python统计一个字符串中每个字符出现了多少次的方法.分享给大家供大家参考,具体如下: #coding=utf-8 #统计一个字符串中的每一个字符出现了多少次 #定义一个字符串 str = 'abbcccdddd' #在字符串的每一个字符之间插入一个空格组成一个新的字符串 str = ' '.join(str) #打印新的字符串看看 print('str = ',str) #将新字符串按空格分割成一个列表 li = str.split(' ') #打印新的列表 print('li

  • Java实现统计文档中关键字出现的次数

    目录 1.实现URL文档的拷贝 2.实现关键词在文档的查询功能 3.显示效果 该代码简易实现了获取URL地址后对文档进行关键字统计的功能.具体的自己看吧 1.实现URL文档的拷贝 import java.util.Scanner; import java.util.regex.Pattern; import java.net.*; import java.io.*; import javax.swing.*; import javax.swing.UIManager; import java.a

  • Python实现统计给定字符串中重复模式最高子串功能示例

    本文实例讲述了Python实现统计给定字符串中重复模式最高子串功能.分享给大家供大家参考,具体如下: 给定一个字符串,如何得到其中重复模式最高的子字符串,我采用的方法是使用滑窗机制,对给定的字符串切分,窗口的大小从1增加到字符串长度减1,将所有的得到的切片统计结果,在这里不考虑单个字符的重复模式,好了,很简单看具体实现: #!usr/binenv python #encoding:utf-8 ''''' __Author__:沂水寒城 统计一个给定字符串中重复模式数量得到最高重复模式串 '''

随机推荐