java中查找文件中的字符个数

package Char;

public class CharNum {
	private int num;
	private char ch;

	public char getCh() {
		return ch;
	}

	public CharNum(char ch) {
		this.ch = ch;
		this.num = 1;
	}

	public void addN() {
		this.num++;
	}

	@Override
	public String toString() {
		return ch + "(" + num + ")";
	}

	public boolean big(CharNum charNum) {
		boolean res = false;
		if (this.num > charNum.num)
			res = true;
		else if (this.num == charNum.num) {
			res = this.ch > charNum.ch;
		}
		return res;
	}
}

package Char;

public class ArrayList {
	private CharNum []a;
	private int count;
	public ArrayLisr() {
		this(10);
	}
	public ArrayList(int len) {
		a=new CharNum[len];
	}
	public void show() {
		for(int i=0;i<count;i++) {
			System.out.println(a[i]+",");
		}
	}
	public void  resize() {
		CharNum [] aa=new CharNum[a.length*3/2];
		System.arraycopy(a, 0, aa, 0, a.length);
		this.a=aa;
	}
	public void add(char ch) {
		int exsit=indexOf(ch);
		if(exsit>=0)
			a[exsit].addN();
		else {
			a[count++]=new CharNum(ch);
			if(count>=a.length)
				resize();
		}
	}
	public int indexOf(char ch) {
		int res=-1;
		for(int i=0;i<count;i++) {
			CharNum c=a[i];
			if(c.getCh()==ch) {
				res=i;
				break;
			}
		}
		return res;
	}
	public void sort() {
		for(int i=1;i<count;i++) {
			for(int k=0;k<count-i;k++) {
				if(a[k].big(a[k+1])) {
					CharNum tmp=a[k];
					a[k]=a[k+1];
					a[k+1]=tmp;
				}
			}
		}
	}
}
package Char;

import java.io.FileReader;
import java.io.Reader;

public class Test {

	public static void main(String[] args) throws Exception {
		ArrayList a=new ArrayList();
		try(Reader r=new FileReader("data/calcCharNum.txt")){
			int k=-1;
			while(true) {
				k=r.read();
				if(k==-1)
					break;
				if(k=='\t'||k=='\n'||k=='\r') 
					k=' ';
				a.add((char)k);
			}
			a.sort();
			a.show();
		}
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值