答复: 一个上机题

问题:
输入:一个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();
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值