Java问题 控制台输入一组数据 判断都是数字 还是都是字母 还是都是字符 还是都是字母和数字的混合

这是我写的程序packagestringtest;importjava.util.*;publicclassPanDuan{/***@paramargs*/publics... 这是我写的程序
package stringtest;
import java.util.*;

public class PanDuan {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
System.out.println("输入一组数据");
String str=input.nextLine();

int a=0,b=0,c=0;
char []ch=str.toCharArray();
for(int i=0;i<ch.length;i++){
if((ch[i]>='a'&&ch[i]<='z')||ch[i]>='A'&&ch[i]<='Z'){
a++;
}
if(ch[i]>='0'&&ch[i]<='9'){
b++;
}
if((ch[i]>=32&&ch[i]<=47)||(ch[i]>=58&&ch[i]<=64)||(ch[i]>=123&&ch[i]<=127));{
c++;
}

if(a==ch.length){
System.out.println("输入的全为字母");
}
else if(b==ch.length){
System.out.println("输入的全为数字");
}
else if(c==ch.length){
System.out.println("输入的全为字符");
}
else if((a+b==ch.length)&&(a!=0)&&(b!=0)){
System.out.println("输入的为字母和数字的混合");
}

}

}

}
可是运行之后 只能针对 “都是”的问题 对于混合却判断不出来 请问应该如何修改
展开
 我来答
周喆铮
2011-10-28
知道答主
回答量:14
采纳率:0%
帮助的人:14.6万
展开全部
if((ch[i]>=32&&ch[i]<=47)||(ch[i]>=58&&ch[i]<=64)||(ch[i]>=123&&ch[i]<=127))
{
c++;
}
帅哥,你的代码if 语句结尾括号处多加了一个分号,表示语句结束了,大括号之内的c每次都加1,所以c怎么执行都是和a+b的值相同所以不好用,删了分号就行了
429615430
2011-10-28 · TA获得超过1273个赞
知道小有建树答主
回答量:750
采纳率:67%
帮助的人:110万
展开全部
楼上的正解啊,一个分号的问题,想了半天没发现,这完全体现了符号的重要性啊,不能小视啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式