日期:2014-05-20  浏览次数:20663 次

请看看下面程序是哪里出错了,该怎么修改啊?
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


------解决方案--------------------

------解决方案--------------------
你用的是JDK1.4的版本?
boolean java.lang.Character.isLetter(int codePoint)这个是since jdk 1.5的,当然不能识别了!

改成:
if (Character.isLetter((char)c))



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

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