我正在使用 System.out.println(arr) 打印一维字符数组,我得到数组中的字符(不是空格分隔)。当我通过添加“/t”来执行相同操作时,输出会发生变化,它现在会打印 char 数组的地址。
我尝试使用 System.out.println(arr) 打印一维整数数组,但结果不同,它打印了数组在内存中的位置。
请说说这是怎么回事,是如何实现的。
import java.io.*;
import java.math.*;
import java.util.*;
import java.lang.*;
class Main3{
public static void main(String[] args)throws java.lang.Exception{
int[] intArr = {1,2,3,4};
char[] charArr = {'a' , 'b' };
System. out.println(intArr); // prints the address of the intArr
System. out.println(charArr); // prints the charArr contents
System.out.println("\t" + charArr); // prints the address of the charArr after a tab
}
}
最佳答案
PrintStream有一个method接受 char[]
。
但是,当您执行 "\t"+ charArray
时,java 会尝试执行 String concatenation .为此,它首先必须使用 Object#toString 将 charArray
转换为字符串。方法(JLS 5.1.11)。然后它将字符串传递给 println
。
关于java - 使用 System.out.println(arr) 在 java 中打印一维字符数组和整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19526710/