zoukankan      html  css  js  c++  java
  • 项目心得——统计字符串中的中文字数+英文单词数

    统计字符串中的中文字数+英文单词数

      在做项目过程中,我遇到了统计评论字数的问题,要求统计 中文字数+英文单词数的总和。也就是统计字符串中的中文字数+英文单词数。

      下面直接上代码,代码逻辑,都在注释中。

    package Test;
    
    public class Main 
    {
        public static void main(String[] args) 
        {
            String s="我爱Java每一天";
            int n=count_word_hanzi(s);
            System.out.println(n);
        }
        public static int count_word_hanzi(String str)
        {
            int ch_num=0;        //中文字数
            int word_num=0;        //英文单词数
            int blank=0;
            /*把html实体转换成html字符,然后把html标签剥去*/
            str=str.replaceAll("\ ", " ");
            str=str.replaceAll("\&lt;", "<");
            str=str.replaceAll("\&gt;", ">");
            str=str.replaceAll("<[^>]*>", "").replaceAll("[(/>)<]", "");        
            /*统计中文字数*/
            for(int i=0;i<str.length();i++)
            {
                char c=str.charAt(i);
                Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
                if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS 
                        || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B 
                        || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS 
                        || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION) 
                {
                    ch_num++;        //如果是 中文字符,则ch_num++
                    str=str.replace(c, ' ');//把中文字符换成空格,以便于统计英文单词数
                }
            }
            /*统计英文单词数*/
            String[] count1 =str.split("[ \t\n\x0B\f\r]");
             int len=count1.length;
                for (int i = 0; i < count1.length; i++) 
                {
                    if (count1[i].equals("")) 
                    {
                       blank++;
                    }
                }
                word_num= len-blank;
            return ch_num+word_num;
        }
    }
    //输出6
  • 相关阅读:
    201521123053《Java程序设计》第十周学习总结
    201521123003《Java程序设计》第9周学习总结
    201521123053《Java程序设计》第八周学习总结

    201521123053《Java课程设计》第七周学习总结
    201521123053《Java设计与程序》第六周学习总结
    201521123053 《Java程序设计》第5周学习总结
    例子
    201521123053《Java程序设计》第四周总结
    201521123049 《JAVA程序设计》 第11周学习总结
  • 原文地址:https://www.cnblogs.com/baichunyu/p/11006091.html
Copyright © 2011-2022 走看看