java - 在 Java 中的 int 数组中使用单引号打印空间问题

标签 java arrays syntax character-encoding output

我想打印我的 int[]以特定格式(在每个数字之间的 space 内等)

但是我发现 Java 不会打印单引号中的空格,它甚至会更改我在 int[] 中的数字. bracket 也发生了同样的事情特点。

例如:

    int[] test = {1,2,3,4,5};

    System.out.println('(' + test[0]+ ' ' +test[1] + ' ' + test[2] + ' ' 
            +test[3] + ' ' + test[4] + ')');

    //224

    System.out.println("(" + test[0]+ " " +test[1] + " " + test[2] + " " 
            +test[3] + " " + test[4] + ")");

    //(1 2 3 4 5)

我认为spacebracket是字符,我想知道为什么我需要使用 double quotes正确打印它们以及为什么 single quotesspace字符会改变输出?

谢谢!

最佳答案

带撇号的引号是 char 文字。 char 是一个数字基元,可以添加到其他数字基元,如 int

+ 运算符也被重载以实现字符串连接。如果运算符的任一侧是 String,则 + 运算符是字符串连接运算符,否则它是数字加运算符。

所以,'A' + 5表示字符A的数值加5,而"A"+ 5表示拼接字符串 A 与数字 5 的字符串表示。

在您的情况下,将第一个字符更改为 String 文字就足够了。所有剩余的 + 运算符将成为字符串连接运算符:

System.out.println("(" + test[0] + ' ' + test[1] + ' ' + test[2] + ' ' 
        + test[3] + ' ' + test[4] + ')');

//(1 2 3 4 5)

关于java - 在 Java 中的 int 数组中使用单引号打印空间问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34823224/

相关文章:

C:动态分配结构体数组的使用

javascript - 重构表的对象数组

rust - &* 在 Rust 中结合在一起做什么?

syntax - 尼姆 : Meaning of exclamation mark before a string constant

C 计算数组中的项目数

c - 将两个无符号 32 位整数相减并赋值给 64 位有符号整数

Java 性能 String.indexOf(char) 与 String.indexOf(single String)

java - 迁移到具有多模块的maven

java - JSF 应用程序的 Netbeans 调试错误

java - 将参数传递给 java 准备语句