![](/img/trans.png)
[英]java - print() does not output char array if the array has int value?
[英]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.