为了账号安全,请及时绑定邮箱和手机立即绑定

请问我的代码有什么问题,运行不了

请问我的代码有什么问题,运行不了

幕布斯9176636 2018-10-09 11:24:44
import java.util.*;public final class beautiful {    public static void main(String[] args) {  // TODO 自动生成的方法存根  Scanner sc=new Scanner(System.in);     String W=sc.nextLine();     //把字母存入字符串数组     String[] W_Arrays=new String[W.length()];     for(int i=0;i<W.length();i++) {      W_Arrays[i]=W.substring(i, i+1);     }     //利用数组删除相同元素,减少for循环的运行时间     List<String> list=new ArrayList<String>();     list.addAll(Arrays.asList(W_Arrays));     //k用于判断元素是否出现偶数次     int k=1,n=0;     boolean flag=true;     while(true) {      for(int j=1;j<list.size();j++) {       if(list.get(n).equals(list.get(j))){        k++;        list.remove(list.get(j));       }      }      //第二层循环完毕,判断k是否为偶数      if(k%2!=0) {       System.out.println("NO");       flag=false;//不为0则退出第一层循环,输出结果      }else {       list.remove(list.get(n));//如果为偶数则删除最开始的元素       k=0;      }     }     if(list.size()==0) {      System.out.println("YES");     }      }} 报错如下:Exception in thread "main" java.lang.Error: 无法解析的编译问题: at com.ACM.beautiful.main(beautiful.java:6)              
查看完整描述

1 回答

已采纳
?
imooc_幕课网

TA贡献12条经验 获得超3个赞


错误的位置:
for(int i=0;i<W.length();i++) {
    W_Arrays[i] = W.substring(i, i+1);
}

当 i = W.length()-1时 ; W.substring(i,i+1);就会造成下标越界。

for(int i=0;i<W.length();i++) {
    if( i< W.length()-1 )
        W_Arrays[i] = W.substring(i, i+1);
    else
       W_Arrays[i] = W.substring(i);   
}


查看完整回答
反对 回复 2018-10-09
  • 1 回答
  • 0 关注
  • 719 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信