用Character类的isletter() isDigit()等方法,....
//判断letter个数的Demo
int letterNum=0;
for(Character c: feng[0].toCharArray())
{
   if(c.isLetter())
     letterNum++;
}

解决方案 »

  1.   

    用正则  至于如何用  查看api
      

  2.   

    上面写错了,不好意思,应该是Character.isLetter(char ch);
    for(char c: feng[0].toCharArray()) 

      if(Character.isLetter(c)) 
        letterNum++; 
    }
      

  3.   

    使用ASCII码来判断,哪怕你是几个日文几个韩文几个简体几个繁体都行。
      

  4.   

    不知道特殊字符包括中文的特殊字符否。最原始的方式://判断数字
    public boolean isDigit(char c){
       if(c >= '0' && c <='9'){
         return true;
       }
       return false;
    }
    //判断字母
    public boolean isLetter(char c){
       if((c >= 'a' && c <= 'z')||(c >= 'A' && c <= 'Z')){
          return true;
        }
        return false;
    }
      

  5.   

    ASCII码判断,根据取值范围。(字母、数字、特殊字符的ASCII码取值范围)
      

  6.   

    class Chazhao
    {

    }
    public class Number
    {

    public static void main(String [] feng)
    {
    int shuzi = 0;
    int zifu = 0;
    int teshu = 0;
    String str = feng[0];
    char[] ch = new char[811];
    int n = str.length();
    str.getChars(0,n,ch,0);
    for(int i = 0;i<=n-1;i++)
    {
    System.out.println(ch[i]);
    }
    for(int m = 0;m <= n-1; m++)
    {
    if(ch[m]>=65&&ch[m]<=90 || ch[m]>=97&&ch[m]<=122)
    {
    shuzi += 1;
    }
    else if(ch[m]>=48&&ch[m]<=57)
    {
    zifu += 1;
    }else if(!(ch[m]>=65&&ch[m]<=90 || ch[m]>=97&&ch[m]<=122) && !(ch[m]>=48&&ch[m]<=57))
    {
    teshu += 1;
    }
    }
    System.out.println("数字的个数是"+shuzi);
    System.out.println("字符的个数是"+zifu);
    System.out.println("特殊字符的个数是"+teshu);
    }
    }
    这是最终代码   不知道为什么不对  表值我查了几遍 没错  没有封装  还请斧正 嘿嘿
      

  7.   

    主要就看怎么分类,正则可以说是最清晰的,同时也比较死,尽量有api+自己区分细节