Arrays.toString,没有图书馆

Arrays.toString, no library

我要完成我的 java 作业了。我对方法很陌生,我似乎无法理解这个方法。你能帮帮我吗?

我正在尝试将 int 数组转换为字符串并使用 .
toString 方法打印它。但是,我们不允许使用某些库。我从我的代码中得到的只是一个 'stack overflow'...

代码:

public static void main(String[] args) {
    int[] arr = {3,4,5,6,7};

    String str = toString(arr);
    System.out.println("arr = " + str);
}

private static String toString(int[] arr) {
    String str = Arrays.toString(arr);
    return str;
}

到目前为止,这是我的程序的完整代码:

public class Arrays {

public static void main(String[] args) {
    int[] arr = {3,4,5,6,7};

    int result = sum(arr);
    System.out.println(result);

    String str = toString(arr);
    System.out.println("arr = " + str);
}

private static int sum(int[] arr) {
    int result = 0;
    for (int i = 0; i < arr.length; i++) {
        result += arr[i];
    }
    return result;
}

private static String toString(int[] arr) {
    String str = Arrays.toString(arr);
    return str;
}


}

我控制台的结果:

25
Exception in thread "main" java.lang.WhosebugError
  at tb222kc_lab3.Arrays.toString(Arrays.java:24)
  at tb222kc_lab3.Arrays.toString(Arrays.java:24)
  at tb222kc_lab3.Arrays.toString(Arrays.java:24).....

toString 方法中的 Arrays.toString(arr) 更改为 java.util.Arrays.toString(arr)

您的代码已进入递归调用,因为您已将 class 命名为 Arrays

然后我会像这样创建自己的 toString :

public String toString(int[] arr) {
    StringBuilder result = new StringBuilder();
    result.append("[");
    for (int a : arr) {
        result.append(a);
    }
    result.append("]");
    return result.toString();
}

您的 toString() 方法应如下所示:

private static String toString(int[] arr) {
    String str = "[";
    for (int index = 0; index < arr.length; index++) {
        // Concat the string with the int value.
        str += arr[index];

        // Add delimiter only if we're not at the last index.
        if (index < arr.length - 1) {
          str += ", ";
        }
    }
    str += "]";
    return str;
}

我只想补充一点,大学教授因给学生提出与现实生活无关的要求(比如不要使用图书馆)而臭名昭著。