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;
}
我只想补充一点,大学教授因给学生提出与现实生活无关的要求(比如不要使用图书馆)而臭名昭著。
我要完成我的 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;
}
我只想补充一点,大学教授因给学生提出与现实生活无关的要求(比如不要使用图书馆)而臭名昭著。