我对中文问题一直都比较头大,现在对一个文档集进行处理,我想先把非中文字符全部过滤掉。开始感觉不难,但想具体做时却没招了,在此请教各位高手。不胜感激

解决方案 »

  1.   

    刚才在别的贴子里发现一个,人家是这么写的,不过我没测试,你看看行不行。
     
     回复人: interhanchi(Stallman'fans) ( ) 信誉:105  2005-10-27 18:49:00  得分: 0  
     
     
       import java.util.regex.*;
    public class TestString { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
             String s= "sfa10你cc";
             Pattern pa = Pattern.compile("[\u4e00-\u9fa5]+");
             Matcher ma = pa.matcher(s);
             while(ma.find()){
              System.out.print(ma.group());
             }
    }}
      
     
    Top  
     
     回复人: believefym(暮色,miss,迷失,miss) ( ) 信誉:100  2005-10-27 18:59:00  得分: 0  
     
     
       只允许汉字的话改成
    Pattern pa = Pattern.compile("^[\u4e00-\u9fa5]*$");//0个汉字应该也行的吧
    Matcher m = pa.macther("我们")
    return m.find();//true为全部汉字,否则是false
      
     
    Top  
      
      

  2.   

    System.out.println("asd我们asd分k".replaceAll("[^\u4E00-\u9FA0]",""));
      

  3.   

    十分感谢各位的帮助和关注,特别是lcwlyl(网络幽灵)
    我以前没怎么关注过正则表达式,现在看来得好好学学了。
    刚才我套用了上面的程序,循环处理了几个文本文件,没什么问题。
      

  4.   

    当然,还是如lcwlyl说的,希望还有别的方法,望大家不吝赐教
      

  5.   

    StreamTokenizer也能处理?
    楼上的给点代码看看