簡體   English   中英

為什么打印 char[] 數組不打印任何 output?

[英]Why does printing a char[] array not print any output?

為什么在以下程序中打印 char[] 不會打印任何 output,而當 char[] 被其他數組類型 int[] 或 float[] 或 String[] 等替換時,相同的程序會打印 output

public class Test5 {
    public static void main(String[] args) {
        char arr[] = new char[5];
        System.out.println(arr);
        System.out.println(arr[0]);
    }
}

而以下打印 output 與 int[]

public class Test5 {
    public static void main(String[] args) {
        int arr[] = new int[5];
        System.out.println(arr);
        System.out.println(arr[0]);
    }
}

OutPut:[I@4cc77c2e

0

你的第一個程序確實產生了 output。 output 恰好采用了不可見的控制字符的形式。

當您創建一個 char 數組時,它會填充有“NUL”字符(不要與 Java null 參考值混淆),它具有 Z7F6C02D96265DD1D37B1101DE1101541 參考值,並且該字符不顯示終端不顯示它是一個不可見的控制代碼。 . 如果您打印到不同的 output 設備,例如打印到一個文件,然后打開該文件,您會看到它。

第二個程序產生不同的 output 因為println 方法對 char arrays 有一個特殊的重載,但對其他 arrays 沒有 這意味着第二個程序打印 int 數組的字符串表示形式,其形式為[I@ ,后跟十六進制數字。

如果想讓第一個程序給出類似output,則需要使用不同版本的println方法。 這些中的任何一個都可以:

System.out.println((Object) arr);
System.out.println(arr.toString())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM