A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jialihong 中级黑马   /  2013-7-31 08:24  /  1106 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨兴庭 于 2013-7-31 23:20 编辑

为什么char s = 1;是正确的赋值。而 char s = "1"; 则赋值出错

评分

参与人数 1黑马币 +3 收起 理由
杨兴庭 + 3 赞一个!

查看全部评分

7 个回复

倒序浏览
双引号是字符串,单引号表示字符。char s='1'就对了
回复 使用道具 举报
为什么char s = 1;是正确的赋值。而 char s = "1"; 则赋值出错
第一:java运用的是Unicode编码表,我个人比较喜欢这样理解:编码表其实就是字符与数字的映射,每一个字符都有对应的数字。当要存储一个字符时,会先查编码表,最后是把字符对应的数字存在内存中,所以直接给字符赋值一个数字也是可以的。
第二:char s = "1";   “1”这是一个字符串,双引号引起的是字符串,不是字符。字符用单引号引起。改为:char s = ‘1’;即可。
最后,希望可以帮到楼主,嘿嘿。

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报 0 1
char类型是字符型,char类型在内存中占两个8位。要用字符型特有的格式char s='1',
注意:这里用的是单引号,并不是双引号!

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
Char s = 1; 这是一个赋值运算,运算符右边是int型常量1,可以直接知道结果,那么需要转换成char类型,那么只要转换后在char类型范围内,就可以编译通过。
Char s = "1";这个格式是错误的,准确格式char s ='1'; 因为" ...  " 代表字符串类型数据,'  ' 代表字符类型数据。

与你一同进步!

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
char ch_1 = 97;//此时c为参照ASCII表查找97对应的字符,
System.out.println(c);//打印的结果为a
char ch_2 = "a";//改句错误。字符应放在单引号中,而不能用双引号

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
这是基本数据类型的问题 初学java的时候应该都必须要掌握的
char 字符类型 在内存中占2个字节 16个二进制位 用' '单引号表示 而且里边必须是一个字符 char s=1; 1是对应的Unicode编码表里的某个字符 输出打印的话就会看到打印出来的是个字符而不是数字1 比如char s=97; 输出打印的话就是小写字母a
String是引用数据类型 表示字符串类型 用的是“”双引号表示 所以应该吧双引号改为单引号
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马