大大毛 的笔记

  DDM's Note

哪怕没有办法一定有说法,
就算没有鸽子一定有乌鸦,
固执无罪 梦想有价,
让他们惊讶.

posts - 14, comments - 23, trackbacks - 0, articles - 58
   :: 首页 ::  :: 联系 ::  :: 管理

统计中英文字数的简单方法

Posted on 2006-04-17 00:33 大大毛 阅读(2217) 评论(1)  编辑  收藏 所属分类: JAVA
    翻了翻以前积累下的一些资料,看到其中有一个统计中英文字符数的例子,很简单,感觉也比较有意思,一直以来都没有这么去想过问题,现在把它记下来。
import  java.io. * ;

public   class  Test 
{
    
/**
     * 统计字串中中文字符数量
     * 
@param  str:GB编码字符串
     
*/

    
public   static   int  statGBCharCount1(String str)  {
        
int  GBCount  =   - 1
;
        String otherStr 
=   null
;
        
        
try
{
            otherStr 
=   new  String(str.getBytes(), " ISO8859_1 "
);
            GBCount 
=  otherStr.length()  -
 str.length();
        }
catch (UnsupportedEncodingException ex) {
            
throw   new  RuntimeException( " UnsupportedEncodingException "
);
        }

        
        
return  GBCount;
    }

    
/**
     * 统计字串中中文字符数量
     
*/

    
public   static   int  statGBCharCount2(String str)  {
        
int  GBCount  =   - 1
;
        
        GBCount 
=  str.replaceAll( " [\u0000-\u0127] " , ""
).length();
        System.out.println(
" asc字符: "   +  str.replaceAll( " [\u0000-\u0127] " , ""
));
        System.out.println(
" 非asc字符: "   +  str.replaceAll( " [^\u0000-\u0127] " , ""
));
        
        
return
 GBCount;
    }

    
    
public   static   void  main(String[] args)  {
        String str 
=   " This is test string 这是一个测试字符串 "
;
        System.out.println(
" 中文字符数: " +
 Test.statGBCharCount1(str));
        System.out.println(
" 中文字符数: " +
 Test.statGBCharCount2(str));
    }


}


可以看到,方法1中使用的办法,可能局限性更大,不过也是一种思路。
自己想的是第2种方法,用正则表达式直接过滤,也挺快捷。

评论

# re: 统计中英文字数的简单方法  回复  更多评论   

2006-11-07 08:58 by vteogdskf
支持哦......

只有注册用户登录后才能发表评论。


网站导航:
 

i am ddm