对于非常愚蠢的问题感到抱歉,我正在学习一门新语言并使用此代码:
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 = [
*/
为什么输出不会产生“]”字符?它与Unicode有关吗?
PostEdited:变量E.c未初始化用于实验目的。
答案 0 :(得分:6)
可能是你的程序输出到的地方,控制台或窗口,被U + 0000字符混淆,这是E.c的值。
它适用于我。
初始化E.c并重试。
答案 1 :(得分:5)
答案 2 :(得分:4)
您正在尝试打印空字符,因为char c
不需要初始化。即\0
有趣的是,您无法轻松复制和粘贴此字符,因为大多数C代码将此视为字符串标记的结尾。
我在运行代码时看到]
。
尝试使用
更改代码char c = '?';
给我输出
i = 0
c = [?]
重现此问题的一种方法是在unix上运行
java Main | more
输出
i = 0
c = [
答案 3 :(得分:1)
可能与E.c未初始化为任何事实
的事实有关答案 4 :(得分:1)
我认为这是因为c
未初始化,因此保持\0
,即“行尾”。因此,println
会打印到行尾并且不会打印您的]
答案 5 :(得分:0)
您应该初始化 char C 以及 int i 。良好的代码实践:一旦声明变量,初始化变量很重要!