📜  Java中的 Arrays.toString() 和示例

📅  最后修改于: 2022-05-13 01:55:04.684000             🧑  作者: Mango

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 [详情请参阅此]