我得到ArrayIndexOutOfBoundsException

时间:2018-10-07 12:44:40

标签: arrays

我正在尝试将String数组转换为int数组,然后比较如果它们相等的元素,到目前为止,我遇到错误,首先这是将字符串数组转换为int数组的方法

private static int[] convertStringArrayToIntArray(String[] strVals) {
        int[] intVals = new int[strVals.length];
        for (int i=0; i < strVals.length; i++) {
            intVals[i] = Integer.parseInt(strVals[i]);
        }
        Arrays.sort(intVals);
        return intVals;
    }

现在下面的方法是我得到异常的地方

public static String ScaleBalancingCorrect(String[] strArr) {
        int[] startWeights = convertStringArrayToIntArray(strArr[0].replaceAll("[^0-9,]", "").split(","));
        int[] availWeights = convertStringArrayToIntArray(("0," + strArr[1]).replaceAll("[^0-9,]", "").split(","));

        if (startWeights[0] != startWeights[1]) { //I get exception here
            for (int i = 0; i < availWeights.length; i++) {
       // omited code for brevity  

这是我遇到异常时正在运行的

public static void main(String [] arg) {
        String [] arr = {"34","1277"};

      ScaleBalancingCorrect(arr);
     }

1 个答案:

答案 0 :(得分:1)

也许这只是一个错字,而您想写if (startWeights[0] != availWeights[1])availWeights将始终至少包含两个元素,因为您在提供的其他元素之前将0作为第一个元素添加。 startWeights,但是,如您的示例所示,可能只有一个元素(在您的示例中为34)。