Java中的 Arrays.toString() 和示例
今天我们将讨论在Java中将数组打印为字符串的最简单方法:Arrays.toString() 方法。
如何使用 Arrays.toString() 方法?
描述:
返回指定数组内容的字符串表示形式。字符串表示由数组元素的列表组成,括在方括号 (“[]”) 中。相邻元素由字符“, ”(逗号后跟一个空格)分隔。如果 a 为 null,则返回“null”。
在对象数组的情况下,如果数组包含其他数组作为元素,它们会通过继承自 Object 的 Object.toString() 方法转换为字符串,该方法描述了它们的身份而不是它们的内容。
变体:
- 公共静态字符串 toString(boolean[] arr)
- 公共静态字符串 toString(byte[] arr)
- 公共静态字符串 toString(char[] arr)
- 公共静态字符串 toString(double[] arr)
- 公共静态字符串 toString(float[] arr)
- 公共静态字符串 toString(int[] arr)
- 公共静态字符串 toString(long[] arr)
- 公共静态字符串 toString(Object[] arr)
- 公共静态字符串 toString(short[] arr)
参数:
arr – 要返回其字符串表示形式的数组
回报:
arr 的字符串表示
用法:
下面提到的Java代码通过示例描述了 Arrays 类的 toString() 方法的用法:
// Java program to demonstrate working of Arrays.toString()
import java.io.*;
import java.util.*;
class GFG {
public static void main(String[] args)
{
// Let us create different types of arrays and
// print their contents using Arrays.toString()
boolean[] boolArr = new boolean[] { true, true, false, true };
byte[] byteArr = new byte[] { 10, 20, 30 };
char[] charArr = new char[] { 'g', 'e', 'e', 'k', 's' };
double[] dblArr = new double[] { 1, 2, 3, 4 };
float[] floatArr = new float[] { 1, 2, 3, 4 };
int[] intArr = new int[] { 1, 2, 3, 4 };
long[] lomgArr = new long[] { 1, 2, 3, 4 };
Object[] objArr = new Object[] { 1, 2, 3, 4 };
short[] shortArr = new short[] { 1, 2, 3, 4 };
System.out.println(Arrays.toString(boolArr));
System.out.println(Arrays.toString(byteArr));
System.out.println(Arrays.toString(charArr));
System.out.println(Arrays.toString(dblArr));
System.out.println(Arrays.toString(floatArr));
System.out.println(Arrays.toString(intArr));
System.out.println(Arrays.toString(lomgArr));
System.out.println(Arrays.toString(objArr));
System.out.println(Arrays.toString(shortArr));
}
}
输出:
[true, true, false, true]
[10, 20, 30]
[g, e, e, k, s]
[1.0, 2.0, 3.0, 4.0]
[1.0, 2.0, 3.0, 4.0]
[1, 2, 3, 4]
[1, 2, 3, 4]
[1, 2, 3, 4]
[1, 2, 3, 4]
我们还可以将 Arrays.toString() 用于用户定义类的对象。
由于 Arrays.toString() 对 Object 类的数组进行了重载(存在方法 Arrays.toString(Object [])),并且 Object 是所有类的祖先,我们可以对任何类型的对象数组调用它。
// Java program to demonstrate working of Arrays.toString()
// for user defined objects.
import java.lang.*;
import java.util.*;
// Driver class
class Main {
public static void main(String[] args)
{
Student[] arr = { new Student(111, "bbbb", "london"),
new Student(131, "aaaa", "nyc"),
new Student(121, "cccc", "jaipur") };
System.out.println(Arrays.toString(arr));
}
}
// A class to represent a student.
class Student {
int rollno;
String name, address;
// Constructor
public Student(int rollno, String name,
String address)
{
this.rollno = rollno;
this.name = name;
this.address = address;
}
// Used to print student details in main()
@override
public String toString()
{
return this.rollno + " " + this.name + " " + this.address;
}
}
输出:
[111 bbbb london, 131 aaaa nyc, 121 cccc jaipur]
为什么 Object.toString() 不适用于数组?
在数组上使用 toString() 方法可能不起作用。它将数组视为典型对象并返回默认字符串,即代表数组的'[',后跟代表数组原始数据类型的字符,后跟Identity Hex Code [详情请参阅此]