标题:[求助]关于cannot be applied to java.lang.String,char这个错误
只看楼主
弑神饕餮
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2007-6-6
 问题点数:0 回复次数:8 
[求助]关于cannot be applied to java.lang.String,char这个错误
operator >= cannot be applied to java.lang.String,char
if((ch[i]>='a'&&ch[i]<='z')||(ch[i]>='A'&&ch[i]<='Z')){
^
请问为什么会出现这个错误?
搜索更多相关主题的帖子: String cannot java applied char 
2007-06-07 18:20
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 

不能在CHAR和STRING之间应用


可惜不是你,陪我到最后
2007-06-07 20:51
弑神饕餮
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2007-6-6
得分:0 
那我如何才能完成这个表达式得到我想要的结果呢?

爱情如潮水般滚滚迩来,总有一天滚滚滚回去!!天长地久惟有java!
2007-06-08 16:22
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
把 ch[i]转换成char

可惜不是你,陪我到最后
2007-06-08 16:36
弑神饕餮
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2007-6-6
得分:0 
public class Tongji{
public static void main(String args[]){
int n=10,m,max,min,p=0;//n为单词总数,m为单个单词长度,p为总长度
int []a=new int[50];
String []ch={"ab+12cd*123dfg%`&()as23BG"};
for(int i=0;i<ch.length;i++){
if((ch[i]>='a'&&ch[i]<='z')||(ch[i]>='A'&&ch[i]<='Z')){
m=0;
m++;
a[n]=m;
//System.out.println("第"+(n+1)+"个单词的长度为"+m);
if((ch[i+1]>='a'&&ch[i+1]<='z')||(ch[i+1]>='A'&&ch[i+1]<='Z'))
n=n+0;
else n++;
}
else n=n+0;

}
for(int i=0;i<n;i++){
if(a[i]<a[i+1]){
max=a[i+1];
min=a[i];
}
else{
max=a[i];
min=a[i+1];
}
for(i=0;i<n;i++) p=p+a[i];
System.out.println("英文单词总数为"+n);
System.out.println("最长的单词长度为"+max);
System.out.println("最短的单词长度为"+min);
System.out.println("单词的平均长度为"+(p/n));

}
}
}

这是我的整个程序,目的一看就明白,我刚才用强制类型转换想将ch[i]强行转换为char或int 可是不行~~

爱情如潮水般滚滚迩来,总有一天滚滚滚回去!!天长地久惟有java!
2007-06-08 16:41
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
String []ch={"ab+12cd*123dfg%`&()as23BG"};
把这个改成

String ch="ab+12cd*123dfg%`&()as23BG";

然后把所有

ch[i]的地方改成ch.charAt(i)就行了



可惜不是你,陪我到最后
2007-06-08 18:42
弑神饕餮
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2007-6-6
得分:0 

佩服 你奶小弟之偶像 不管你同意不同意俺就管你当老大了~老大!

问题已解决!解决方案在6楼~~~


编译已无问题,可是运行事却出现
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String ind
ex out of range: 25
at java.lang.String.charAt(String.java:460)
这个错误

然后我将程序修改将ch.charAt(i+1)的+1去掉,果然可以运行,证明问题出在这里,应该是越界了,可是这样的话就不能达到我想达到的意图了,于是我将ch.length()改成ch.length()-1 可是结果仍然不行。我想请问,是不是就没有办法了呢?


爱情如潮水般滚滚迩来,总有一天滚滚滚回去!!天长地久惟有java!
2007-06-09 16:30
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 

因为你后面又加了一个1,所以会越界

这就是你程序设计的问题了

其实你想统计数量,用Map多方便啊


可惜不是你,陪我到最后
2007-06-09 18:07
弑神饕餮
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2007-6-6
得分:0 
回复:(千里冰封)因为你后面又加了一个1,所以会越界...

好的 谢谢了
map?我绝对新手 我会去查的


爱情如潮水般滚滚迩来,总有一天滚滚滚回去!!天长地久惟有java!
2007-06-09 20:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-145738-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.162106 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved