一个上机题
输入:一个txt文本文件
输出:字数总数
排序后再输出
例如:文本的内容是:我爱大海,我爱蓝天
输出:字数总数是:6
排序后:出现1次:大 海 蓝 天
出现2次:我 爱
怎么实现呢?
急~~~~~~~~~~~~~~~~~~~~
感觉这题完全是考API...
感觉这题完全是考API...
仁者见仁,智者见智
如果用shell作
每个字后加个回车
package com.ib.test;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.util.Scanner;public class TestPool {public static void main(String[] args) throws FileNotFoundException{Scanner scan=new Scanner(new FileInputStream("f:/test.txt"));CharacterPool pool=new CharacterPool();while(scan.hasNextLine()){for(Character c:scan.nextLine().toCharArray()){pool.write(c);}}System.out.println("字数总数是:"+pool.getCountSize());int i=1;do{System.out.print("出现"+i+"次:");System.out.println(pool.toString());pool=pool.getNext();i++;}while(pool!=null);}}package com.ib.test;import java.util.LinkedList;import java.util.List;class CharacterPool {private List<Character> pool = new LinkedList<Character>();private CharacterPool next=null;public void write(Character c){if(c<'\u4e00'||c>'\u9fa5'){return;}if(pool.contains(c)){pool.remove(c);if(next==null){next=new CharacterPool();}next.write(c);}else{pool.add(c);}}public CharacterPool getNext(){return next;}public int getSize(){return pool.size();}public int getCountSize(){return next==null?pool.size():pool.size()+next.getCountSize();}@Overridepublic String toString(){return pool.toString();}}
9 楼 ganlisxn 2009-06-04 哈哈,我出来了