输出一个数组中的元素,我们通常用for循环来做,比如:
package test;
public class Test {
public static void main(String args[]){
int arr[]={1,2,3};
System.out.print("[");
for(int i=0; i<arr.length-1; i++)
System.out.print(arr[i]+", ");
System.out.println(arr[arr.length-1]+"]");
}
}
输出的结果为:[1, 2, 3]。
但是Java提供了更为简单的方法,这就是toString方法。具体做法如下:
package test;
import java.util.Arrays;
public class Test {
public static void main(String args[]){
int arr[]={1,2,3};
System.out.println(Arrays.toString(arr));
}
}
输出的结果为:[1, 2, 3]。
但是如果数组中的元素不是同一类型怎么办呢?比如:
package test;
import java.util.Arrays;
public class Test {
public static void main(String args[]){
int[] arr={1,2,3};
String[] str={"aaa","bbb"};
Object[] array = {arr,str};
System.out.println(Arrays.toString(array));
}
}
输出的结果为:[[I@158f9d3, [Ljava.lang.String;@79a2e7]。
可以看到打印出来的不是数组元素,而是对象的内存代号。如果要打印出数组元素怎么办呢?这里我们可以用到deepToString。比如:
package test;
import java.util.Arrays;
public class Test {
public static void main(String args[]){
int[] arr={1,2,3};
String[] str={"aaa","bbb"};
Object[] array = {arr,str};
System.out.println(Arrays.deepToString(array));
}
}
输出的结果:[[1, 2, 3], [aaa, bbb]]。