关于Map.Entry可以参看在容器中使用增强的for循环,简洁大气,结构清晰所以说是:英雄所见略同哈。
不足之处就是:当有两个或者多个最大的时候,会发生覆盖。
第一个例子:
package mapApp;
import java.util.HashMap;
import java.util.Map;
public class MaxTimesOfChar2 {
/*
* 主要是对MaxTimesOfChar.java的瘦身,思路都是英雄所见略同
*
* */
public static void main(String[] args) {
Map<Character, Long> charTimesMap = new HashMap<Character, Long>();
String str = "hello wolrd wlllkdsfhksadfls?sdfsak lsdfjsidf jsafdalsjfs sfskdfjs";
str = str.replaceAll("[^a-zA-Z]", "");// 过滤掉非字母
for (char each : str.toCharArray()){
Long freq = charTimesMap.get(each);
charTimesMap.put(each, freq == null ? 1 : freq + 1);
}
char maxAppearChar = 0;
Long maxAppearTimes = 0l;
for (Map.Entry<Character, Long> charAppear : charTimesMap.entrySet()) {
if (charAppear.getValue() > maxAppearTimes) {
maxAppearChar = charAppear.getKey();
maxAppearTimes = charAppear.getValue();
}
}
System.out.println("出现最多的字母:" + maxAppearChar);
System.out.println("出现次数:" + maxAppearTimes);
}
}
输出结果:
出现最多的字母:s
出现次数:13
第二个例子:
package mapApp;
public class MaxTimesOfChar3 {
public static void main(String[] args) {
String s = "abbcccddddeeeeeeffffff(*&*&*(*&%%";
s = s.replaceAll("[^a-zA-Z]", "");// 过滤掉非字母
System.out.println(s);// 测试用
int max = 0;// 保存最大次数
int temp = 0;
String maxString = "";// 保存最大次数的那个字符
String tempString = "";
while (s.length() > 0) {
tempString = s.substring(0, 1);// 取得字符串的第一个字符
System.out.println(tempString);// 测试用
String subs = s.replace(tempString, "");
temp = s.length() - subs.length();
if (max <= temp) {
max = temp;
maxString = tempString;
}
s = subs;
System.out.println(temp + "--" + s);// 测试用
}
System.out.println(maxString + " max= " + max);
}
}
输出结果:
abbcccddddeeeeeeffffff
a
1--bbcccddddeeeeeeffffff
b
2--cccddddeeeeeeffffff
c
3--ddddeeeeeeffffff
d
4--eeeeeeffffff
e
6--ffffff
f
6--
f max= 6
.
分享到:
相关推荐
一个字符串包含了空个等标点符号,计算出现次数最多的字母和该字母出现次数 开发提示:可以使用Map,key是字母,value是该字母的次数
在Python编程语言中,统计字符串中的中英文字符、空格、数字和标点符号是一项常见的任务,这在数据处理和文本分析中非常有用。本文将详细介绍如何实现这一功能,并探讨相关知识点。 首先,我们需要理解Python中处理...
标题提到的"统计字符串中汉字、字母、数字、英文标点、中文标点个数"是一个典型的字符串分析问题,它涉及到对输入字符串进行逐个字符检查,识别并计数不同类型的字符。这个问题可以通过多种编程语言来解决,例如...
标题中的"统计字符串中每个字符出现次数并排序工具"是一个实用的程序,它的主要功能是接收一段字符串输入,然后分析其中每一个字符的出现频次,并将这些字符按照出现次数由高到低进行排序。这样的工具在处理大量文本...
1. 字符串统计:本节的主要任务是统计文本中的字符个数,包括英文字母、数字、空格和除此之外的其他字符。 2. 文件操作:本节使用 `fopen` 函数打开文件,并使用 `fclose` 函数关闭文件。 3. 字符判断:本节使用 `if...
本项目聚焦于使用C语言来统计一个字符串中各个字母出现的频率,这对于理解和掌握C语言的基本语法、内存管理以及算法设计至关重要。"子字符串"这一标签提示我们关注的是字符串的一部分,而不是整个字符串本身。 在...
1. **预处理字符串**:将输入的字符串按照空格分割成单词,同时记录下每个单词的起始和结束位置,以及遇到的标点符号。这可以通过遍历字符串并检查每个字符是否是字母或数字来完成。如果是,我们将其视为单词的一...
根据给定的标题和描述,我们可以理解这是一个关于字符串过滤的编程任务,目标是保留字符串中的字母和数字字符,而忽略其他非字母、非数字的元素,比如空格、标点符号、特殊字符等。这个任务通常涉及到字符串遍历、...
(2)统计某一字符串在文章中出现的次数,并输出该次数; (3)删除某一子串,并将后面的字符前移。 (4)存储结构使用线性表,分别用几个子函数实现相应的功能; 输入数据的形式和范围: 可以输入大写、小写的英文...
给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello” 输入描述: 输入数据有多组,每组占一行...
LabVIEW自动检测字符串的大小写字母、数字、空格和特殊字符
这段代码的目的是找出一个给定字符串中出现次数最多的字母,并显示该字母及其出现次数。这里提供的JavaScript代码实现了一个简洁的方法来完成这个任务。下面将详细解释代码中的各个部分及其涉及的知识点。 首先,...
在这段代码中,`is_empty_or_spaces`函数接收一个字符数组作为参数,通过计算其长度和遍历字符来判断字符串是否为空或只包含空格。主函数`main`中调用了这个函数,并输出了结果,以直观地展示函数的正确性。 总之,...
在正则表达式中,[\\W]+表示匹配一个或多个非单词字符(包括标点符号、空格等),这一步通过String类的replaceAll()方法完成。 接下来,程序将上述处理过的字符串按照空格分割成一个单词数组,使用split()方法。...
在这段代码中,`str`字符串包含了一些标点符号,如感叹号、问号、逗号等。通过调用`replaceAll()`方法,我们使用了正则表达式`[\\pP]`来匹配所有的标点符号,并将它们替换为破折号`-`。 这里的正则表达式`[\\pP]`是...
- 标点符号移除:为了正确计算单词出现次数,需要将标点符号替换为空格或删除。在`initPara()`函数中,使用条件判断将特定的标点符号替换为空格。 2. 哈希映射与数据结构: - 结构体数组:`Word`结构体用于存储...
在编程领域,计算一个字符串中英文单词的个数是一项常见的任务,特别是在文本处理和数据分析中。这个任务可以通过C语言来实现,这是一种底层、高效的编程语言,适合处理这种基础的字符操作。Dev C++是一个集成开发...
每个字符,包括空格和标点符号,都被视为单独的元素。因此,字符串`'9527 welcome to matlab !! '`的长度可以通过`size`指令查询,结果显示为26,因为这个字符串包含了26个字符。 字符串在MATLAB中被视为行向量,其...
在“字符统计c++”这个主题中,我们主要关注的是如何使用C++来编写一个程序,该程序能够统计一段文本中空格、字母、数字以及标点符号的数量。下面将详细探讨这一知识点。 首先,我们需要理解C++的基本语法和数据...