关于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是该字母的次数
该程序用于统计一个字符串中中英文、空格、数字和标点符号的个数。
(2)统计某一字符串在文章中出现的次数,并输出该次数; (3)删除某一子串,并将后面的字符前移。 (4)存储结构使用线性表,分别用几个子函数实现相应的功能; 输入数据的形式和范围: 可以输入大写、小写的英文...
LabVIEW自动检测字符串的大小写字母、数字、空格和特殊字符
字符串数组 matlabMATLAB字符串数组 ... ' %包含数字,字母,标点符号,空格 ans = 1 26 %长为26 1 2 3 4 5 6 7 8 9 10 ch=['abcdef';'123456'] %建立多行字符串,形成字符串矩阵 ch(2,3) c
字符串数组 matlab ... ' %包含数字,字母,标点符号,空格 ans = 1 26 %长为26 ch=['abcdef';'123456'] %建立多行字符串,形成字符串矩阵 ch(2,3) ch = 2×6 char 数组 %建立的2行6列的字符串矩阵
(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。 存储结构使用线性表,分别用几个子函数实现相应的功能; 输入数据的形式和范围:可以输入大写、小写的英文...
2)、统计某一字符串在文章中出现的次数,并输出该次数; 3)、删除某一子串,并将后面的字符前移。 要求用菜单选择操作,分别用几个子函数实现相应的功能; 输入数据的形式和范围:可以输入大写、小写的英文字母、...
(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。 存储结构使用线性表,分别用几个子函数实现相应的功能; 输入数据的形式和范围:可以输入大写、小写的英文字母、...
(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一字符串,并将后面的字符前移;(4)插入一个字符串,并输出删除后的文章。 存储结构使用线性表,分别使用多个子函数实现相应功能。 输入数据的...
回文串只有字母组成,找最长的回文串时可以剔除标点符号和空格(剔除标点符号和空格后的回文串长度不超过2000),字母不考虑大小写(如字母A与a相同)但输出回文串时要保留原来的标点符号和空格。 任 务 :求最大的...
实验目的:掌握指针的使用方法,正确使用指针处理字符串。 2. 实验内容:实现一个过滤无用词汇程序。规则如下: 1. 能接受的字符是:字母数字 标点符号, . " 还有无用的符号@#¥ 2. 对于敏感信息的词语是不分大小写...
(2)字符:一个符号,比如一个英文字母、一个数字、一个标点符号、一个汉字、一个日本字、一个空格、一个回车、一个Tab键 2、怎么表示字符串 (1)比如 name、’name’ : 规定,用引号引起来的才是字符串 比如...
现要求读取该文本文件内容,统计文章中每个单词出现的次数,并输出出现次数最多的前5个单词及其出现次数(按出现次数由多到少的顺序输出,次数相同时按字典顺序输出,不足5个单词时,按序输出全部单词)。...
输入一页文字,程序可以统计出文字、数字、空格和其它标点...2)、统计某一字符串在文章中出现的次数,并输出该次数; 3)、删除某一子串,并将后面的字符前移。 要求用菜单选择操作,分别用几个子函数实现相应的功能;
(2)统计某一字符串在文章中出现的次数,并输出该次数; (3)删除某一子串,并将后面的字符前移。 存储结构使用线性表,分别用几个子函数实现相应的功能; 输入数据的形式和范围:可以输入大写、小写的英文字母、...
(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。 存储结构使用线性表,分别用几个子函数实现相应的功能; 输入数据的形式和范围:可以输入大写、小写的英文字母、...