2

こんにちはiamは以下の問題でランタイムエラーを把握できません。誰でも解決できますか

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);
    }
}
4

1 に答える 1

4

問題は、ユーザーがコンマ(,)を使用して入力を提供し、コンマが最後の文字(または唯一の文字)である場合event1、最大で1つの要素を持つことですevent1[0]。要素event1[1]は存在しないため、を取得しArrayIndexOutOfBoundsExceptionます。

これは、入力が次のような場合にのみ発生します:bgh,afsfgf,または,

これは、配列event1に含まれる要素の数を確認することで解決できます。

于 2012-07-19T07:05:51.113 に答える