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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ♫梦想起航♫ 中级黑马   /  2013-10-25 18:06  /  1169 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

各位大哥大姐前辈们,同学同路朋友们,是这样的:
    我在学习毕向东老师的java基础4-9 数组(十进制-->十六进制)中要到一个问题不明白,就是我在编译的时候编译器提示:
            ArrayTest5.java:29: 错误: 不可转换的类型
                                System.out.println((char)(temp-10+"A"));
                                                         ^
  需要: char
  找到:    String
1 个错误
   
然后我将"A"改成了'A'后编译和运行都正常了,我想知道这是为什么啊,为什么""会报错,而使用''却不报错呢?求解释。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

5 个回复

倒序浏览
这里首先指出的是temp-10+"A"加上字符串“A”之后
这里就把数值类型转换成立字符串,这里有一个自动转换机制
例如 int a=10;然后输出 System.out.println(a+“ ”)这里打印的
结果为一个字符串数值,所以你运行(char)(temp-10+"A");这条语句,编译时就
会出现类型转换错误Cannot cast from String to char(意思就是说:不能从字符串类型转换为字符类型)
希望对您有帮助!

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
你这里把结果强转成char类型的而char 表示一个unicode类型的字符双字节需要 用单引号括起来 所以要用'A'    而提示你找到String是因为String 表示一个字符串类变量。用来存放字符串,如 "abcdsddd",用引号括起来的是一个字符串
回复 使用道具 举报
"A":是一个String类型

'A':是一个char类型
在java中这是两种不同的数据类型,
在第13天的视频中你会学习到String类
回复 使用道具 举报
1961993790 发表于 2013-10-25 18:15
这里首先指出的是temp-10+"A"加上字符串“A”之后
这里就把数值类型转换成立字符串,这里有一个自动转换机 ...

谢谢,现在明白了,一个是字符串一个是字符,这两个不是一路的,开始我自己认为字符和字符串的区别只是一个只能装一个字符一个却可以装很多字符,结果他们的区别不止这些。
回复 使用道具 举报
看到这问题,脑子第一个想法就是,String类型是不可改变的,属于final型的,字符串常量,不能强转
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马