问题:
输入:一个txt文本文件
输出:字数总数
排序后再输出
例如:文本的内容是:我爱大海,我爱蓝天
输出:字数总数是:6
排序后:出现1次:大 海 蓝 天
出现2次:我 爱
怎么实现呢?
急~~~~~~~~~~~~~~~~~~~~
用面向对象思想解决:
输入:一个txt文本文件
输出:字数总数
排序后再输出
例如:文本的内容是:我爱大海,我爱蓝天
输出:字数总数是:6
排序后:出现1次:大 海 蓝 天
出现2次:我 爱
怎么实现呢?
急~~~~~~~~~~~~~~~~~~~~
用面向对象思想解决:
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();
}
@Override
public String toString(){
return pool.toString();
}
}