- /*题目6:
- * 6、 统计一个文本文件中字符出现的次数,结果存入另外的一个文本文件中。例如:
- * a: 21 次
- * b: 15 次
- * c: 15 次
- * 把: 7 次
- * 当: 9 次
- * 前: 3 次
- * ,:30 次
- * 思路:首先利用io技术读取文本,全部文本组成一个字符串,然后存放入字符数组中,将字符放入treeset中去,
- * 然后数组中每一位去遍历数组,如果查到那么计数器count+1,接着将数据通过io技术存储到 另一个文本文档中去。
- */
- public class Test6 {
- public static void main(String[] args) throws Exception{
- //第一步:读取并存到一个字符串中
- BufferedReader buf=new BufferedReader(new FileReader("c:\\1.txt"));
- String str="",line="";
- while((line=buf.readLine())!=null){
- str=(line+str).trim();
- }
- buf.close();//关闭流
- //第二步利用正则表达式去除空字符并将字符串重新组装
- String[] arr=str.split(" +");
- String newstr="";
- for(int i=0;i<arr.length;i++){
- newstr=arr[i]+newstr;
- }
- //第三步放入到treeset集合中
- TreeSet<String> tm=new TreeSet<String> ();
- //开传
- for(int i=0;i<newstr.length();i++){
- tm.add(newstr.substring(i, i+1));
- }
- Iterator<String> it=tm.iterator();
- String finalstr="";
- while(it.hasNext()){
- String str1=it.next().toString();
- finalstr=finalstr+str1;
- int count=0;
- for(int j=0;j<newstr.length();j++){
- if(newstr.substring(j, j+1).equals(str1)){
- count++;
- }
- }
- finalstr=finalstr+"("+count+")";
- }
- //利用io写入2.txt中
- BufferedWriter bufw=new BufferedWriter(new FileWriter("c:\\2.txt"));
- bufw.write(finalstr);
- bufw.flush();//刷新流
- bufw.close();//关闭流
- }
- }
复制代码 |
|