如何打印答案索引?

问题描述 投票:0回答:2

我正在寻找两个值之和的索引等于目标数。该程序的预期输出为{0,1},但是我从以下代码中获得了[I @ 1b6d3586]。

我知道方法调用可能有问题,但是我不知道如何解决它。

public static void main(String[] args) {

    int[] a = {2, 7, 9, 11};
    System.out.println(twoSum(a, 9));

}

public static int[] twoSum(int[] arr, int target) {
    for (int i = 0; i < arr.length; i++) {
        for (int j = i + 1; j < arr.length; j++) {
            if (arr[i] + arr[j] == target) {
                return new int[]{i, j};
            }
        }
    }
    throw new IllegalArgumentException("No two sum solution");
}
java methods getter-setter
2个回答
1
投票

您需要将结果转换为字符串。 int[]无法直接打印

System.out.println(Arrays.toString(twoSum(a, 9)));

0
投票

数组是一个单独的对象,该对象的纯文本输出与其内容无关。您可以改用StringBuilder或Arrays.toString方法。

StringBuilder:

int[] ints = new int[] {2, 3};

char separator = ' ';
StringBuilder builder = new StringBuilder();

for (int anInt : ints) {
  builder.append(anInt).append(separator);
}

Arrays.toString:

int[] ints = new int[] {2, 3};

String arrayAsString = Arrays.toString(ints);
© www.soinside.com 2019 - 2024. All rights reserved.