2012-07-19 66 views
2

喜亚姆摸不清以下问题运行时错误,请任何人都可以解决摸不清在下面的代码运行时错误

import java.util.Scanner; 

class Solution6 { 
    public static void main(String[] args) 
    { 
     boolean condition = false; 
     do 
     { 
      Scanner scanner = new Scanner(System.in); 
      String value = scanner.nextLine(); 
      condition = value.equalsIgnoreCase("exit"); 
      if(!condition && value.contains(",")) 
      { 
       calculate(value); 
      } 
     } while (!condition); 
    } 

    private static void calculate(String value) 
    { 
     final String[] event1 = value.split(","); 
     int ss = 0; 
     for (int i = 0; i < event1[0].length(); ++i) 
     { 
      char c = event1[0].charAt(i); 
      ss += (int) c; 
     } 
     int sd = 0; 
     for (int i = 0; i < event1[1].length(); ++i) 
     { 
      char c = event1[1].charAt(i); 
      sd += (int) c; 
     } 

     System.out.println(ss-sd); 
    } 
} 
+0

你在哪一行得到异常? – 2012-07-19 06:51:22

+0

当在eclipse中尝试它没有给出任何异常时,我已经把这段代码放在在线考试网站上,那里的网站会编译它,编译后说运行时错误,但不提供哪一行或异常名称 – developer 2012-07-19 06:52:38

+0

所以试试吧你的电脑,它会告诉你发生异常的线路。我们需要更多关于这个问题的细节,所以我们可以帮助你。 – 2012-07-19 06:54:26

回答

4

的问题是,如果用户提供的输入用逗号(,)和逗号是最后一个字符(或唯一字符),那么event1最多只有一个元素:event1[0]。元素event1[1]将不存在,所以你得到一个ArrayIndexOutOfBoundsException

只有当输入是这样的时候才会发生这种情况:bgh,,afsfgf,甚至,

您可以通过检查数组event1包含的元素数来解决此问题。