黑马程序员技术交流社区

标题: 字符在控制台窗口怎么不能原样显示? [打印本页]

作者: hpuie0703    时间: 2016-2-11 07:17
标题: 字符在控制台窗口怎么不能原样显示?
class Demo18_DataType {
        public static void main(String[] args) {
                char c1 = 3;
                char c2 = 4;
                char c3 = 5;
                char c4 = 6;
       
                System.out.println(c1);
                System.out.println(c2);
                System.out.println(c3);
                System.out.println(c4);
        }
}
在Editplus中JDK_7u72运行结果如附件1的截图, 视频中讲课的运行结果如附件2.
问题:附件1的运行结果为什么和附件2的不一样?

1我自己的运行结果.png (3.29 KB, 下载次数: 49)

附件1

附件1

2老师视频的运行结果.png (1.12 KB, 下载次数: 47)

附件2

附件2

作者: tsldxszd    时间: 2016-2-11 19:48
机器编码不同
作者: hexinchun    时间: 2016-2-12 21:26
就是编码不同吧。我试过了,也是不行。
我打印的结果是 四个方括号



作者: hexinchun    时间: 2016-2-12 21:32
我知道了 你一定是在eclipse之类的开发工具里运行的
如果你在dos命令行里运行的话肯定没问题。
你可以去试试。
作者: 461673570    时间: 2016-2-16 23:39
机器编码不同
作者: xieyangxuejun    时间: 2016-2-18 12:07
指定下字符编码~~
作者: 就是我    时间: 2016-2-25 23:28

直接写的常数,1,2,3之类的,系统默认为int类型
你将int类型值赋给char,由于char实际也是int类型数,但显示时,会将该数值作为坐标,在ascll码表中查找对应字符
如果你直接给char c1="1";直接给的字符,它内部存储为0x31,但输出时还是"1",
但如果你给的是 char c =1;它存储0x01,打印时,以1为坐标查找ascll码表,就会查到❤了
你去翻翻ascll码表就知道那几个符号对应的坐标了
作者: wanmu    时间: 2016-3-5 23:27
ascll码表中并不是没有个位数都可以输出的。
作者: 善毅    时间: 2016-3-9 23:49
可以打印出来。你用EditPlus 3,我试了,可以的
作者: 懒癌患者    时间: 2016-3-11 20:35
这个是因为个人电脑系统的问题吧    我有同学输出的是4个“?”
作者: a7866443121    时间: 2016-3-19 22:48
系统默认的运算数据类型是int类型的;你的char c1 = 3;
系统默认为你将int基本数据类型强行赋给char字符类型,由于char在java中占两个字节,实际也可以看作是int类型数,在运算时系统会在ascll码表中查找对应字符,也就得到了黑桃,红桃,方片,梅花;详情可以参照ASCLL码表;

作者: Sharezer    时间: 2016-3-21 21:21
3 4 5 要加引号的   '3'
作者: 604840337    时间: 2016-3-21 22:34
机器编码不同 我打印出来 什么也不显示 不用在意
作者: アカツキ    时间: 2016-3-23 23:26
编码不同 把文件保存为ANSI编码,再重试一下,我经常遇到,我用的是notepa++
作者: zx7750462    时间: 2016-3-24 12:46
用的编码不同而已
作者: 1620698398    时间: 2016-3-27 11:49
首先你在c1 c2.....初始化赋值的时候,你用char类型接受的int数,会被自动提升为int类型,而显示不同应该是用的读取数据的码表的不同,所以对应的码表显示出来的结果就不一样
作者: gaoduilaile    时间: 2016-3-28 21:45
你用的是char型的数据类型接受的 3,4,5,6   这几个整型数,系统会把这几个整数转为对应的char型对象再赋值,每个版本的unicode码不同,得到的结果也不同
作者: 钱金磊    时间: 2016-4-14 00:53
这个是美国标准ASCII编码表,机器操作系统没出错的话就是你发的那个图!
我正缺着技术分呢!

标准美国ASCII编码表.jpg (703.54 KB, 下载次数: 48)

标准美国ASCII编码表.jpg





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2