首个Java程序输出不正确

Sop*_*ner 5 java

对不起真的很愚蠢的问题,我正在学习一门新语言并使用这段代码:

public class Exercise01 {
    int i;
    char c;

    public static void main(String[] args) {

        Exercise01 E = new Exercise01();
        System.out.println("i = " + E.i);
        System.out.println("c = [" + E.c + "]");
    }
}
/* Output:
i = 0
c = [
*/
Run Code Online (Sandbox Code Playgroud)

为什么输出不会产生"]"字符?它与Unicode有关吗?

PostEdited:变量Ec未初始化用于实验目的.

Ray*_*oal 6

可能是你的程序输出到的地方,控制台或窗口,被U + 0000字符混淆,这是Ec的值

这对我来说可以.

初始化Ec并再试一次.


Pet*_*rey 4

您正在尝试打印空字符,因为您char c不需要初始化。即,\0有趣的是,您无法轻松复制和粘贴此字符,因为大多数 C 代码将其视为字符串标记的结尾。

]当我运行代码时我看到了。

尝试更改您的代码

char c = '?';
Run Code Online (Sandbox Code Playgroud)

给我一个输出

i = 0
c = [?]
Run Code Online (Sandbox Code Playgroud)

重现此问题的一种方法是在 unix 上运行

java Main | more
Run Code Online (Sandbox Code Playgroud)

哪个输出

i = 0
c = [
Run Code Online (Sandbox Code Playgroud)

  • 问题是“为什么输出不产生“]”字符?““它对我有用”不是答案。与 C 程序交互是一个可能的答案。 (4认同)