黑马程序员技术交流社区
标题:
帮忙做个题,写上有思路和注释
[打印本页]
作者:
╰繼/aiq戀い
时间:
2014-6-27 09:54
标题:
帮忙做个题,写上有思路和注释
把当前文件中的所有文本拷贝,存入一个txt文件,统计每个字符出现的次数并输出,例如:
a: 21 次
b: 15 次
c:: 15 次
把: 7 次
当: 9 次
前: 3 次
,:30 次
作者:
496080891
时间:
2014-6-27 14:57
本帖最后由 496080891 于 2014-6-27 14:59 编辑
public class Test6 {
/**
* 6、 把当前文件中的所有文本拷贝,存入一个txt文件,统计每个字符出现的次数并输出,
* 例如:
* a: 21 次
* b: 15 次
* c:: 15 次
* 把: 7 次
* 当: 9 次
* 前: 3 次
* ,:30 次
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
File file1 = new File("D:\\eclipse\\exam\\src\\com\\itheima\\Test6.java");//关联当前文件
File file2 = new File("D:\\eclipse\\exam\\src\\com\\itheima\\Test6.txt");//关联目标文件
BufferedReader in =
new BufferedReader(new FileReader(file1));//输入流
BufferedWriter out =
new BufferedWriter(new FileWriter(file2));//输出流
String len = null;
StringBuffer sb = new StringBuffer();
while ((len=in.readLine())!=null){
sb.append(len);
out.write(len);
out.newLine();
out.flush();
}
Map map = countChar(sb.toString());//创建Map集合
Set set = map.entrySet();
Iterator it = set.iterator();
while(it.hasNext()){//循环写入Key和Value的值
Entry<Character,Integer> entry = (Entry<Character, Integer>) it.next();
//System.out.println(entry.getKey()+":"+entry.getValue()+"次");
out.write(entry.getKey()+":"+entry.getValue()+"次");
out.newLine();
out.flush();
}
in.close();
out.close();
}
//统计字符出现次数;
public static Map<Character,Integer> countChar(String str){
Map<Character,Integer> map = new HashMap<Character,Integer>();
char[] chars = new char[str.length()];
str.getChars(0, str.length(), chars, 0);
for(char c : chars){
Integer count = map.get(c);
if(count == null)
map.put(c, 1);
else
map.put(c, ++count);
}
return map;
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2