如题,已完成了部分,不知道如何找出单词和汉字的个数?public class t6{public static void main(String[] args){String str="司”,,面试,t5.java";
int letters=0;
int numbers=0;
int chinese=0;
int ch_punctuation=0;
int words=0;
int punctuation=0;char c;
for(int i=0;i<str.length();i++){
c=str.charAt(i);
if(Character.isLetter(c)){
letters++;}else if(Character.isDigit(c)){
numbers++;}else if((int)c>127){
ch_punctuation++;}else if(Character.isWhitespace(c)){
                  
continue;}else{punctuation++;
}}
System.out.println("letter:"+letters+";  numbers:"+numbers+";  全角标点:"+ch_punctuation+";  chinese:"+chinese+" words:"+words+"; 英文标点:"+punctuation+";  length:"+str.length());}
}

解决方案 »

  1.   

    String str="司”,,面试,t5.java";
            int i=0,j=0,k=0;
            Pattern p = Pattern.compile("[\u4E00-\u9FA5]+");
            Matcher m = p.matcher(str);
            while(m.find())
                i++;
            p = Pattern.compile("\\w+");
            m = p.matcher(str);
            while(m.find())
                j++;
            p = Pattern.compile("[,\\.;:'\",。、?;:’”]");
            m = p.matcher(str);
            while(m.find())
                k++;
            
            System.out.println(i+"\t"+j+"\t"+k);
      

  2.   

    Pattern p = Pattern.compile("[\u4E00-\u9FA5]");
      

  3.   

    \w 
    匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。