嗨,我无法在下面的问题中找出运行时错误,请任何人都可以解决
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 :(得分:4)
问题是如果用户使用逗号(,
)提供输入并且逗号是最后一个字符(或唯一字符),则event1
最多只有1个元素: event1[0]
。元素event1[1]
将不存在,因此您获得ArrayIndexOutOfBoundsException
。
仅当输入如下:bgh,
,afsfgf,
或甚至,
时才会发生这种情况。
您可以通过检查数组event1
包含的元素数来解决此问题。