JAVA如何使用方法打印出主数组?
因此,我需要创建一个方法,该方法将接受整数并返回一个长度为3的数组,其中三个整数作为输入 这是我创建的,但它返回此JAVA如何使用方法打印出主数组?,java,methods,return,Java,Methods,Return,因此,我需要创建一个方法,该方法将接受整数并返回一个长度为3的数组,其中三个整数作为输入 这是我创建的,但它返回此[I@7852e922 public class IntsToArray { public static int[] fill(int a, int b, int c){ int[] array = new int[3]; array[0] = a; array[1] = b; array[2] = c; return
[I@7852e922
public class IntsToArray {
public static int[] fill(int a, int b, int c){
int[] array = new int[3];
array[0] = a;
array[1] = b;
array[2] = c;
return (array);
}
public static void main(String[] args){
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int c = Integer.parseInt(args[2]);
int[] array = fill(a, b, c);
System.out.println(array);
}
}
我做错了什么?将数组传递给System.out.println()时,将调用数组的toString()方法并写入结果字符串。对于数组,没有toString()的特定实现,因此使用了超类对象的toString()。Object.toString()定义为:
getClass().getName() + '@' + Integer.toHexString(hashCode());
这就是[I@7852e922
您看到的。本质上,这是数组实例的内部id
要打印数组的内容,请执行以下操作:
System.out.println(Arrays.toString(array));
或者这个:
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
for(int i=0;i
将数组传递给System.out.println()时,将调用数组的toString()方法并写入结果字符串。对于数组,没有toString()的特定实现,因此将使用超类对象的toString()。Object.toString()定义为:
getClass().getName() + '@' + Integer.toHexString(hashCode());
这就是[I@7852e922
您看到的。本质上,这是数组实例的内部id
要打印数组的内容,请执行以下操作:
System.out.println(Arrays.toString(array));
或者这个:
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
for(int i=0;i
正如您提到的不要使用库,您可以从类数组中提取代码:
public static String stringify(int[] a) {
if (a == null)
return "null";
int iMax = a.length - 1;
if (iMax == -1)
return "[]";
StringBuilder b = new StringBuilder();
b.append('[');
for (int i = 0; ; i++) {
b.append(a[i]);
if (i == iMax)
return b.append(']').toString();
b.append(", ");
}
}
public class IntsToArray {
public static int[] fill(int a, int b, int c){
int[] array = new int[3];
array[0] = a;
array[1] = b;
array[2] = c;
return (array);
}
public static void main(String[] args){
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int c = Integer.parseInt(args[2]);
int[] array = fill(a, b, c);
System.out.println(stringify(array));
}
}
并按如下方式使用:
public static String stringify(int[] a) {
if (a == null)
return "null";
int iMax = a.length - 1;
if (iMax == -1)
return "[]";
StringBuilder b = new StringBuilder();
b.append('[');
for (int i = 0; ; i++) {
b.append(a[i]);
if (i == iMax)
return b.append(']').toString();
b.append(", ");
}
}
public class IntsToArray {
public static int[] fill(int a, int b, int c){
int[] array = new int[3];
array[0] = a;
array[1] = b;
array[2] = c;
return (array);
}
public static void main(String[] args){
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int c = Integer.parseInt(args[2]);
int[] array = fill(a, b, c);
System.out.println(stringify(array));
}
}
正如您提到的不要使用库,您可以从类数组中提取代码:
public static String stringify(int[] a) {
if (a == null)
return "null";
int iMax = a.length - 1;
if (iMax == -1)
return "[]";
StringBuilder b = new StringBuilder();
b.append('[');
for (int i = 0; ; i++) {
b.append(a[i]);
if (i == iMax)
return b.append(']').toString();
b.append(", ");
}
}
public class IntsToArray {
public static int[] fill(int a, int b, int c){
int[] array = new int[3];
array[0] = a;
array[1] = b;
array[2] = c;
return (array);
}
public static void main(String[] args){
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int c = Integer.parseInt(args[2]);
int[] array = fill(a, b, c);
System.out.println(stringify(array));
}
}
并按如下方式使用:
public static String stringify(int[] a) {
if (a == null)
return "null";
int iMax = a.length - 1;
if (iMax == -1)
return "[]";
StringBuilder b = new StringBuilder();
b.append('[');
for (int i = 0; ; i++) {
b.append(a[i]);
if (i == iMax)
return b.append(']').toString();
b.append(", ");
}
}
public class IntsToArray {
public static int[] fill(int a, int b, int c){
int[] array = new int[3];
array[0] = a;
array[1] = b;
array[2] = c;
return (array);
}
public static void main(String[] args){
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int c = Integer.parseInt(args[2]);
int[] array = fill(a, b, c);
System.out.println(stringify(array));
}
}
如果你想打印一个数组,你应该迭代它的所有成员并打印每个成员。你现在要做的是打印数组对象,它打印它的内存地址,使用对象基类的默认toString()方法,正如bhspencer所指出的,来打印数组 试试这个:
public class IntsToArray {
public static int[] fill(int a, int b, int c){
int[] array = new int[3];
array[0] = a;
array[1] = b;
array[2] = c;
return (array);
}
public static void main(String[] args){
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int c = Integer.parseInt(args[2]);
int[] array = fill(a, b, c);
for(int i = 0; i < array.length; i++)
{
System.out.println(array[i]);
}
}
}
公共类IntsToArray{
公共静态int[]填充(int a、int b、int c){
int[]数组=新的int[3];
数组[0]=a;
数组[1]=b;
数组[2]=c;
返回(数组);
}
公共静态void main(字符串[]args){
inta=Integer.parseInt(args[0]);
intb=Integer.parseInt(args[1]);
intc=Integer.parseInt(args[2]);
int[]数组=填充(a,b,c);
for(int i=0;i
如果你想打印一个数组,你应该迭代它的所有成员并打印每个成员。现在你要做的是打印数组对象,该数组对象打印它的内存地址,使用bhspencer指出的对象基类的默认toString()方法来打印数组
试试这个:
public class IntsToArray {
public static int[] fill(int a, int b, int c){
int[] array = new int[3];
array[0] = a;
array[1] = b;
array[2] = c;
return (array);
}
public static void main(String[] args){
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int c = Integer.parseInt(args[2]);
int[] array = fill(a, b, c);
for(int i = 0; i < array.length; i++)
{
System.out.println(array[i]);
}
}
}
公共类IntsToArray{
公共静态int[]填充(int a、int b、int c){
int[]数组=新的int[3];
数组[0]=a;
数组[1]=b;
数组[2]=c;
返回(数组);
}
公共静态void main(字符串[]args){
inta=Integer.parseInt(args[0]);
intb=Integer.parseInt(args[1]);
intc=Integer.parseInt(args[2]);
int[]数组=填充(a,b,c);
for(int i=0;i
“所以我的问题是我不允许使用库中的任何内容。所以只允许使用简单的解决方案”我认为@Juan的答案非常简单,你也可以对(int ele:array){System.out.println(ele);}使用基于范围的循环“所以我的问题是我不允许使用库中的任何内容。所以只允许使用简单的解决方案”我认为@Juan的答案很简单,你也可以使用一个基于范围的循环for(int-ele:array){System.out.println(ele);}
太棒了,非常感谢!我需要的确切答案。你说“打印它的内存地址”。这是不正确的。事实上,您正在打印数组哈希的字符串表示形式加上类名。有关详细信息,请参阅我的答案,太棒了,非常感谢!我需要的确切答案。您说“打印它的内存地址”。这是不正确的。事实上,您正在打印数组哈希加类名的字符串表示形式。有关详细信息,请参阅我的答案,