Java实现字数统计(中文英文韩文日文混合),类似word效果

因为业务需求,需要一个字数统计的功能,其实这个功能也不难,但是因为这边涉及到中文,英文,
日文和韩文的混合文本,所以不能用一般的统计方法,在网上搜索了一些,
然后综合了一下自己写了个支持混合统计的工具类
直接上代码
	/**
     * 字数统计
     * @param sContent 正文内容
     * @return
     */
    public static Integer wordCount(String sContent){
        int byteCount = 0;
        //中文字符的处理
        String cn_words = sContent.replaceAll("[^(\\u4e00-\\u9fa5\\x3130-\\x318F\\u0800-\\u4e00,。《》?;’‘:“”【】、)(……¥!·)]", "");
        int cn_word_count = cn_words.length();
        //英文字符的处理
        String en_words = sContent.replaceAll("[^(a-zA-Z0-9`\\-=\\';.,/~!@#$%^&*()_+|}{\\\":><?\\[\\]\" \")]", "");
        int en_words_count = 0;
        String[] en = en_words.split(" ");
        for (String s : en){
            if (s.trim().length() != 0){
                en_words_count++;
            }
        }
        //韩文字符处理
        String kr_words = sContent.replaceAll("[(\\u4e00-\\u9fa5\\u0800-\\u4e00a-zA-Z0-9!\" \",。《》?;’‘:“”【】、)(……¥!·)]", "");
        int kr_word_count = kr_words.length();
        //合计处理
        byteCount = cn_word_count + en_words_count + kr_word_count;
        return byteCount;
    }

其实一般来讲,统计字数只需要中文和英文区分一下就可以了,但是因为业务需求,所以加入了日文和韩文的混合统计,其中韩文的字符编码范围是/x3130-/x318F,本来是可以一起在中文字符处理的正则里面过滤的,但是不知道为什么没有生效,只能重新统计一次将中英日文排除掉
最后的运行结果也达到了混合统计的效果,和word里面的统计相似(虽然代码有一点low)
在这里插入图片描述
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值