我在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;
}
我只会补充说,大学教授臭名昭著,因为他们给学生的要求与现实生活无关(例如不要使用图书馆)。