黑马程序员技术交流社区
标题:
统计每个字符出现的次数
[打印本页]
作者:
曹春洋
时间:
2014-1-10 22:27
标题:
统计每个字符出现的次数
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
public class Test5 {
/**把当前文件中的所有文本拷贝,存入一个txt文件,统计每个字符出现的次数并输出,例如:
a: 21 次
b: 15 次
c:: 15 次
把: 7 次
当: 9 次
前: 3 次
,:30 次
* @param args
*/
public static void main(String[] args) throws IOException {
// 读取d盘c.txt文本里的内容
BufferedReader in = new BufferedReader(new FileReader("d:\\c.txt"));
String str = new String(), s2 = new String();
//将读取的字符放入str中
while ((s2 = in.readLine()) != null)
{
str += s2;
}
//关闭输入流
in.close();
//将字符串强制转换为char[]数组
char[] arry =str.toCharArray();
int all = 0;
//定义一个HashMap对象其中键是字符,值为字符的个数
HashMap<Character, Integer> map = new HashMap<Character, Integer>();
//遍历数组
for (int i = 0; i < arry.length; i++)
{
//判断HashMap中是否有该字符。
if(map.get(arry[i]) != null)
{
//把值存入all变量中
all = map.get(arry[i]);
//然后all加1,再把该字符和该字符出现的个数存入HashMap中
map.put(arry[i], all + 1);
}
//该字符不在HashMap中
else if (map.get(arry[i]) == null) {
//把该字符添加到HashMap中,字符个数为1
map.put(arry[i] , 1);
}
}
//遍历Hash中的key
for (Character c : map.keySet())
{
//输出次数
System.out.print(c+":"+ map.get(c)+"次\n");
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2