zoukankan      html  css  js  c++  java
  • 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 + "个");
    	}
    
    }
    

      

  • 相关阅读:
    [BZOJ1666][Usaco2006 Oct]Another Cow Number Game 奶牛的数字游戏
    [BZOJ1692][Usaco2007 Dec]队列变换
    [BZOJ1599][Usaco2008 Oct]笨重的石子
    [BZOJ1603][Usaco2008 Oct]打谷机
    [BZOJ1614][Usaco2007 Jan]Telephone Lines架设电话线
    [BZOJ1617][Usaco2008 Mar]River Crossing渡河问题
    [BZOJ1612][Usaco2008 Jan]Cow Contest奶牛的比赛
    [BZOJ1600][Usaco2008 Oct]建造栅栏
    [BZOJ1230][Usaco2008 Nov]lites 开关灯
    hdu 2199 Can you solve this equation? 二分
  • 原文地址:https://www.cnblogs.com/xcxfuryit/p/7112755.html
Copyright © 2011-2022 走看看