public int checkC(String s){ char []a = {'1','2','3','4','5','6','7','8','9','0','-','+','*','/','(',')'};
char []c = {‘5’,‘-’,‘2’}
int i=0;
int j=0;
for(i=0;i<c.length-1;i++)
{
for(j=0;j<a.length-1;j++)
{
if(c[j]==a[i]){
int t = calcu(s);
System.out.print(t);
}else{
JOptionPane.showMessageDialog(null,"输入了错误的字符");
}
}

}
return 0;

}

解决方案 »

  1.   

    数组越界错误,数组c的长度只有3,而c[j]中j的值却是从0-14,所以会出错.
      

  2.   

    老大,你应该用a[j]==c[i],象你那样用不错才怪
      

  3.   

    "=="运算符的结合方向是从左向右,你用的语句是if(c[j]==a[i]),而c[]的长度只有3,比你a.length的值要小得多!故数组越界,就报错了!
      

  4.   

    要想比较数祖里面的内容是不能用==的,必须用到equals方法,==是比较两个的地址。
    能明白吧!
      

  5.   

    jabeginner(开拓者) ( ) 信誉:100    Blog  要想比较数祖里面的内容是不能用==的,必须用到equals方法,==是比较两个的地址。
    能明白吧!=======================================
    胡说,char是基本类型的就用==来比较,楼主的数组越界错误
      

  6.   

    是数组的越界错误啊,c.length是3,但c[j]中的j却0-14,当然就会出错了嘛
      

  7.   

    char可以用==比较
    改为c[i]==a[j]就对了