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.StackOverflowError
  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)

您的代码已进入递归电话,因为您将类命名为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;
}

我只会补充说,大学教授臭名昭著,因为他们给学生的要求与现实生活无关(例如不要使用图书馆)。

相关内容