我想知道一个字符串有多少个中文,和他们的位置,以及内容?
还有我想知道一个字符串里有多少种语言,和他们的位置,以及内容

解决方案 »

  1.   

    用正则表达式   
    csdn的某篇blog里面有 中文对应的表达式  
    搜索一下即可
      

  2.   

    汉字是双字节编码,它为了能够与英文字符分开,每个字节的最高位一定为1。如果是汉字,构成汉字的第一个字节是一个负值,第二个是正值。而构成英文字母的字节总是正值。所以要通过getBytes()转化为byte型,再比较与零的大小,就可以判断String中汉字个数。
    //“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”
       public  static  String  getStr(String  src,  int  len)  {  
           if  (src  ==  null)              return  null;  
           if  (src.getBytes().length  <=  len)    return  src;  
            byte[]  s  =  src.getBytes();  
           int  flag  =  0;  
           for(int  i=0;i<len;++i){  
             if(s[i]  <  0)  flag++;    
           }  
           if(flag%2!=0)  len--;          
           byte[]  d  =  new  byte[len];  
           System.arraycopy(s,  0,  d,  0,  len);  
           return  new  String(d);  
       }