public class WordCount {
public static void main(String[] args) {
String words = "ilikecubailikejavaibmoraclesun";
StringCounter strCounter = new StringCounter();
String strTem;
for(int i = 0; i < words.length(); i++) {
strTem = String.valueOf(words.charAt(i));
strCounter.count(strTem);
}
//getSortedHashtableByValue(strCounter);
for(Map.Entry<String, Integer> entry : getSorted(strCounter)) {
System.out.println(entry.getKey() + "------------" + entry.getValue());
}
}
//嵌套类
static class StringCounter extends HashMap<String,Integer> {
public void count(String str) {
Integer num = get(str);
put(str,num == null ? 1 : num + 1);
//上面的代码是不是很简洁?
/*if(num == null)
put(str,1);
else
put(str,num+1);*/
}
}
//返回排序好的数组
static Map.Entry<String, Integer>[] getSorted(Map<String,Integer> m) {
Set set = m.entrySet();
Map.Entry<String, Integer>[] entries =
(Map.Entry<String, Integer>[]) set.toArray(new Map.Entry[set.size()]);
//Comparator 策略模式应用的一个实例
Arrays.sort(entries, new Comparator<Map.Entry<String, Integer>>() {
@Override
public int compare(Entry<String, Integer> entry1,
Entry<String, Integer> entry2) {
Integer in1 = entry1.getValue();
Integer in2 = entry2.getValue();
return in1.compareTo(in2);
}
} );
return entries;
}
}
1.在这个小程序中,有嵌套类(nested clsss)的使用,具体为StringCounter类。在此程序中,StringCounter为内部类,把它生命为static,原因有2个,a.它并不需要与其外围类通信,并不需要去访问外围类的成员。b.创建嵌套类的对象比较方便,并不需要其外围类的对象。
2.在统计时,想到了用hashmap。 map的巧用。
3.对map中的数据进行排序。这里用到了Comparator。 这是策略模式(strategy)的一个具体应用。
分享到:
相关推荐
以下是一个简单的Java程序示例,用于统计字符串中每个字母的个数: ```java public class Test { public static void main(String[] args) { String input = "Hello, World!"; int[] count = new int[26]; // ...
在PHP编程语言中,统计字符串中每种字符的个数并进行排序是一个常见的需求,尤其在文本处理和数据分析中。本文将详细介绍三种不同的方法来实现这一功能,并强调`str_split()`函数的重要作用。 首先,`str_split()`...
这个函数用于统计字符串中每个字符出现的次数。它接受两个参数,一个是字符指针`q`,另一个是整型数组`a`,用于存储每个字符(按ASCII码值)的计数。首先,初始化数组`a`的所有元素为0,然后遍历字符串`q`,对每个...
通过上述内容,我们了解了如何使用Java中的`HashMap`来统计字符串中字符出现的次数。这种方法简单高效,适合处理大量的文本数据。此外,还探讨了一些扩展知识,如其他数据结构的选择、异常处理和多线程环境下的使用...
统计文件中每个字符出现的个数是 Java 编程中的一种常见操作,例如在文本分析、数据挖掘、机器学习等领域中都需要对文件中的字符进行统计。本文将介绍两种方法来统计文件中每个字符出现的个数。 方法一:使用 ...
while循环用于删除ArrayList中的空字符串,而for循环用于遍历ArrayList并统计单词出现的次数。 知识点6:Java TreeMap的键值对操作 在本例中,我们使用了TreeMap的put方法来将单词和其出现的次数作为键值对存储在...
1. **字符串的 `count()` 方法**:`str.count(sub, start=0, end=len(string))` 方法用于统计字符串中子字符串 `sub` 出现的次数。`start` 和 `end` 是可选参数,用于指定搜索的起始和结束位置,默认情况下在整个...
具体实现可以使用循环遍历字符串,判断每个字符是否为数字字符,如果是,就将其转换为数字,然后统计奇数和偶数的个数。 第 4 题:字符串删除和排序 本题要求编写程序,输入字符串(不包含空格),删除字符串中 ...
函数 ReadWrite() 的主要功能是读取文件 in.dat 中的两个字符串,并调用函数 findStr() 统计子字符串的出现次数。最后,输出结果到文件 out.dat 中。 知识点: * 文件输入输出 * 字符串操作 * 函数调用 5. 函数 ...
实验三:分类统计字符的个数 用户输入一行字符,程序按字母、数字和其他字符分类计数。这需要用到字符分类逻辑和计数器变量。 实验四:查找电话号码 创建一个50项的电话簿,能按人名排序,接收输入人名并查找相应...
17. **大小写字母计数**:分别统计字符串中大写字母和小写字母的个数。检查每个字符的ASCII值并分类计数。 18. **字符串转换**:将字符串中的小写字母转换为大写字母。遍历字符串并根据ASCII值转换。 19. **八进制...
可以使用一个哈希表(或数组)来记录每个字母出现的次数,遍历字符串,对每个字符进行计数。对于大写字母,我们将其转换为小写字母进行统一处理,以便区分不同的字符。最后,输出大写字母和小写字母的总数。 例如,...
问题:编写程序,输入由数字字符构成的字符串,分别统计该字符串中数字字符对应的数字中奇数和偶数的个数。 解答: ```cpp #include #include int main() { int a[100], i, n, o, j; char str[100]; o = 0; j...
3. **子串计数**:计算字符串中不同子串的数量,这对于统计信息或分析文本非常有用。 4. **回文子串**:利用后缀数组可以高效地找出字符串中的最长回文子串。 5. **连续重复子串**:寻找连续重复的子串及其出现次数...
本文将深入探讨如何使用编程技术统计一篇文章中每个单词的个数,这通常涉及文本预处理、字符串操作和词频统计等概念。 首先,我们需要一个小程序来读取文章内容。这个"Statistical words.exe"很可能就是这样一个...
1. 统计字符串中字母、数字、空格和标点符号的个数: 这个程序首先定义了一个长度为101的字符数组`str`用于存储用户输入的字符串。然后,通过遍历字符串,利用`isalpha()`、`isdigit()`、`isspace()`和`ispunct()`四...
(9)编写一个函数void fun(char a[],int k,int n),其功能是:删除字符串中指定下标开始的n 个字符。其中,a中放字符串,k中存放指定的下标。 例如,字符串内容为:Hellollo World!,k中值为:5,n中的值为:3,则...
这篇文章总结了福建农林大学python实验的四个题目,包括输出m,n之间的素数、斐波那契数列、统计字符串中的英文字符、空格、数字和其他字符的个数、字典排序等。 题目一:输出m,n之间的素数 在这个题目中,我们需要...