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