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

要求:统计一个文件中的英文,中文,数字,其他字符以及字符总数(此随笔以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 + "个");
	}

}

  

时间: 2024-10-16 17:53:59

Java学习(4):统计一个文件中的英文,中文,数字,其他字符以及字符总数的相关文章

统计一个文件中出现字符&#39;a&#39;的次数

# -*- coding: utf-8 -*- #python 27 #xiaodeng #统计一个文件中出现字符'a'的次数 #http://www.cnblogs.com/hongten/p/hongten_python_count.html import os number=0 def getNumber(filePath,c): 'c---->the word numbers' #统计一个文件中出现字符'a'的次数 if os.path.exists(filePath): global

java怎么实现统计一个字符串中字符出现的次数

问题:假设字符串仅仅保护a-z 的字母,java怎么实现统计一个字符串中字符出现的次数?而且,如果压缩后的字符数不小于原始字符数,则返回. 处理逻辑:首先拆分字符串,以拆分出的字符为key,以字符出现次数为value,存入Map中. 源码如下: 1 import java.util.HashMap; 2 import java.util.Iterator; 3 import java.util.Map; 4 5 public class TestCompress { 6 7 public sta

java学习,从一个字符串中统计同一类型出现的次数

1.从字符串“AS345asdzf*())sddsWE”中统计大写字母.小写字母.其他类型的出现的次数 String s="AS345asdzf*())sddsWE"; int l = 0,b=0,o=0; for(int i=0;i<s.length();i++){ char t= s.charAt(i);//charAt返回索引值 if(t>='a'&&t<='z'){//判断是否为小写字母 l++; }else if(t>='A'&

黑马程序员——IO——读取一个文件中的文字输出到控制台上

读取一个文件中的文字输出到控制台上 import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; //读取一个文件中的文字 ,输出到控制台上 //读取的是字符文字,因此可以使用字符流来操作 public class FileReaderDemos { public static void main(String[] args) { // TODO Auto-generate

Java IO把一个文件中的内容以字符串的形式读出来

代码记录(备查): /** * 把一个文件中的内容以字符串的形式读出来 * * @author zhipengs * */ public class FileToString { public static void main(String[] args) { System.out.println(readFileToString()); } private static String readFileToString() { // new 一个空文件,用于获取路径 File dirs = ne

java中的文件读取和文件写出:如何从一个文件中获取内容以及如何向一个文件中写入内容

1 2 3 import java.io.BufferedReader; 4 import java.io.BufferedWriter; 5 import java.io.File; 6 import java.io.FileInputStream; 7 import java.io.FileNotFoundException; 8 import java.io.FileOutputStream; 9 import java.io.IOException; 10 import java.io.

JAVA学习笔记 -- 把资源文件打包到jar包

初学GUI,用Eclipse导出jar包,设定的最小化图标不能显示(hello.png文件放在项目的根目录下).代码如下: import javax.swing.JFrame; import java.awt.Toolkit; import java.awt.Image; import java.net.URL; public class GUITest { public static void main(String[] args) { JFrame frame = new JFrame();

【JAVA学习】struts2的action中使用session的方法

尊重版权:http://hi.baidu.com/dillisbest/item/0bdc35c0b477b853ad00efac 在Struts2里,如果需要在Action中使用session,可以通过下面两种方式得到1.通过ActionContext class中的方法getSession得到2.Action实现org.apache.struts2.interceptor.SessionAware接口的方式来对session进行操作 下面先看一个采用第一种方式,在action中得到sessi

java学习一目了然&mdash;&mdash;File类文件处理

java学习一目了然--File类文件处理 File类(java.io.File) 构造函数: File(String path) File(String parent,String child) File(File parent,String child) 创建文件: boolean createNewFile(); 创建文件夹: boolean mkdir(); 用于创建一层未定义文件夹 boolean mkdirs(); 用于创建多层未定义文件夹,相当于多个mkdir() 删除文件/文件夹