import java.io.*;
public class StringRW
{ public static void main(String[] args) throws Exception
{ String s="ab 汉 c 字+* as df_12*(34-67)+a6b7c";
StringReader sr=new StringReader(s); 
int c;
int cc=0;
while((c=sr.read())!=-1)
{ if(Character.isLetter(c)) cc++;
}
System.out.println("源串是:"+s);
System.out.println("字母个数是:"+cc);
}
}
报错是:isLetter(char) in java.lang.Character cannot be applied to applied to (int) StringRW.java

解决方案 »

  1.   

    你用的是JDK1.4的版本?
    boolean java.lang.Character.isLetter(int codePoint)这个是since jdk 1.5的,当然不能识别了!改成:
    if (Character.isLetter((char)c))
      

  2.   

    没有问题的  这段代码  是你的环境的问题 !
      我在我的MeEclipse中测试了  一个字没动  
    输出结果 
      源串是:ab 汉 c 字+* as df_12*(34-67)+a6b7c
      字母个数是:12
      

  3.   

    4楼说的对,代码没有问题,我也是jdk1.5。
    结果如下:
    D:\UltraEdit\test>java StringRW
    源串是:ab 汉 c 字+* as df_12*(34-67)+a6b7c
    字母个数是:12
      

  4.   

    哦  其他的都是好的呀   可能是我的jdk版本太低吧    我用的是1.4的  
    谢谢楼上的提醒哦
      

  5.   

    哦  其他的都是好的呀   可能是我的jdk版本太低吧    我用的是1.4的  
    谢谢楼上的提醒哦