Java学习:统计一个文件中的英文,中文,数字,其他字符以及字符总数

Posted xcxfury

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java学习:统计一个文件中的英文,中文,数字,其他字符以及字符总数相关的知识,希望对你有一定的参考价值。

要求:统计一个文件中的英文,中文,数字,其他字符以及字符总数(此随笔以txt文件为例)

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * 将一个文件中英文,中文,数字,其他字符以及字符总数统计出来
 * 
 * @author xcx
 * @time 2017年6月24日下午4:12:53
 */
public class Statistics {

	public static void main(String[] args) throws IOException {
		String E1 = "[\u4e00-\u9fa5]";// 中文
		String E2 = "[a-zA-Z]";// 英文
		String E3 = "[0-9]";// 数字

		String file = "d:\\java\\dd.txt";// 要读的文件路径
		// 创建读入字节流
		FileInputStream fis = new FileInputStream(file);
		// 将字节流转化为字符流
		InputStreamReader isr = new InputStreamReader(fis);
		// 转化为缓存模式
		BufferedReader br = new BufferedReader(isr);

		int numSum = 0;// 记录数字字符
		int letSum = 0;// 记录英文字符
		int punSum = 0;// 记录标点字符
		int chineseSum = 0;// 记录中文字符
		int totle = 0;// 记录总字符

		// 将读出来的字符复制到ss
		String ss = "";
		String s;
		while ((s = br.readLine()) != null) {
			ss += s;
		}
		// 遍历字符串
		String temp;
		for (int i = 0; i < ss.length(); i++) {
			temp = String.valueOf(ss.charAt(i));
			if (temp.matches(E1)) {// 如果该字符匹配中文
				chineseSum++;
			} else if (temp.matches(E2)) {// 如果该字符匹配英文
				letSum++;
			} else if (temp.matches(E3)) {// 如果该字符匹配数字
				numSum++;
			} else
				punSum++;// 其他
		}
		
		// 总的字符数
		totle = numSum + letSum + punSum + chineseSum;

		// 输出
		System.out.println("数字有:" + numSum + "个");
		System.out.println("英文有:" + letSum + "个");
		System.out.println("其他字符有:" + punSum + "个");
		System.out.println("中文有:" + chineseSum + "个");
		System.out.println("总的字符有:" + totle + "个");
	}

}

  

以上是关于Java学习:统计一个文件中的英文,中文,数字,其他字符以及字符总数的主要内容,如果未能解决你的问题,请参考以下文章

java 怎么读取文件中的字符和数据

Java学习:输入一串字符串,分别统计出其中的中英文字母,空格,数字和其他字符的个数

统计单词频率

JAVA 统计键盘输入的一个字符串中的数字,字母大小写和其他。

优化 Python 中的文件和数字行数

如何用java读取文件并统计文件的大小写字母,数字,特殊字符的个数