java - 使用 System.out.println(arr) 在 java 中打印一维字符数组和整数

标签 java

我正在使用 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#toStringcharArray 转换为字符串。方法(JLS 5.1.11)。然后它将字符串传递给 println

关于java - 使用 System.out.println(arr) 在 java 中打印一维字符数组和整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19526710/

相关文章:

Java扫描器命令系统

Java JNI接口(interface): Native functions relative file paths

java - 将 List<List<string>> 转换为 string[]

java - 如何将文本字段添加到数组,然后将其用作循环

java - Play2 使用 AsyncResult 调用多个 Web 服务 (Java)

java - 存储每次 session 都需要但永远不会改变的数据的最佳方式

java - 如何发出逗号分隔的列表?

java - 使用 Ant 打印 Java 的包层次结构

Java 1.6 HttpsURLConnection : java.net.SocketException:连接重置

java - 无法在我的 JavaScript 客户端上解码我的 Base64 字符串