这是我的代码:
char ersterChar = 14;
char zweiterChar = 'B';
System.out.println(ersterChar);
当我打印ersterChar
时,它会向我显示此输出:https://gyazo.com/c9d250bb8867ac11ef4f4a944813983c
当我输入zweiterChar
时,它确实给了我" B"信。
我理解这是错的吗?我尝试做的是降低值,但我得到相同的输出。
答案 0 :(得分:3)
实际上只能打印某些字符 - 这取决于ASCII。由于14低于可打印字符的值,因此您不会看到任何有意义的输出。
答案 1 :(得分:3)
Java不使用ASCII。 Java使用Unicode(UTF-16)。 Unicode是ASCII的超集,因为Unicode表中的前128个字符与ASCII表中的相同。这是Unicod table(注意:表中的值是十六进制的)。
打印时,Unicode(也是ASCII)中的前32个字符不可见。这些是命令字符
角色' B'在Unicode中有值66。
如果你想打印' B'然后将值更改为66:
char ersterChar = 66;
答案 2 :(得分:0)
你正试图打印一个"转出"字符,超出普通ASCII字符(32到128之间)的范围。以上任何内容都被视为"扩展的ASCII"和0到31(和127)被认为是不可打印的控制字符。
答案 3 :(得分:0)
如果我可能会问,为什么你需要一个整数作为一个字符?
Request Body:
{
"credentials": {
"name": "vikrant******@gmail.com",
"password": "password",
"site": {
"contentUrl": "MyContentURL"
}
}
}
是整数类型而不是char。这就是14
工作的原因。
char zweiterChar = 'B';
是单个字符,即字母,数字,标点符号,制表符,空格或类似内容。 char字面是用单引号括起来的单个字符。
尝试将char
重新声明为char ersterChar = 14;