给你一个任意字符串,你去打印出它所有字符出现的次数??

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给你一个任意字符串,你去打印出它所有字符出现的次数??相关的知识,希望对你有一定的参考价值。

解决这个问题,首先得解决2个小问题:

1、因为是任意给定的任意字符串,你怎样知道需要打印的次数?

2、用循环打印  怎样不重复打印

上个栗子:

 1 package kimi;
 2 
 3 import java.util.LinkedHashMap;
 4 import java.util.Map;
 5 import java.util.Set;
 6 
 7 public class Text$$$$ {
 8     public static Map<String, Integer> map = new LinkedHashMap<>();
 9 
10     public static Map<String, Integer> getLetterCountByString(String string) {
11         int length = string.length();
12         String first = string.substring(0, 1);
13         string = string.replace(first, "");
14         map.put(first, length - string.length());
15         return string.length() > 0 ? getLetterCountByString(string) : map;
16     }
17 
18     public static void main(String[] args) {
19         Map<String, Integer> map = getLetterCountByString("sdsdas [email protected]@ 我睡觉哦 sda3 ");
20         Set<String> set = map.keySet();
21         for (String key : set) {
22             System.out.println("key:" + key + "     value:" + map.get(key));
23         }
24     }
25 }

第15行代码运用递归的思想,不需要知道具体打印的次数,只要给定一个目标,利用三目运算符,比普通for循环减少了代码量,

运行结果如下:

key:s     value:5
key:d     value:3
key:a     value:2
key:      value:4
key:2     value:1
key:3     value:3
key:4     value:1
key:@     value:2
key:我     value:1
key:睡     value:1
key:觉     value:1
key:哦     value:1

 

以上是关于给你一个任意字符串,你去打印出它所有字符出现的次数??的主要内容,如果未能解决你的问题,请参考以下文章

2022-09-01:字符串的 波动 定义为子字符串中出现次数 最多 的字符次数与出现次数 最少 的字符次数之差。 给你一个字符串 s ,它只包含小写英文字母。请你返回 s 里所有 子字符串的 最大波

linux实现针对文本统计字母出现的次数(所有的可打印的字符)

[LeetCode]子串的最大出现次数(字符串)

Java获取字符串中字母出现的个数

1297. 子串的最大出现次数

C++ 怎么编写一个字符串中某个字符出现n次的所有位置,返回值为指针数组,