java字符型变量char小小问题

我是个初学手看视频人家敲代码我也模仿敲代码和人家一模一样为什么我输出出来的却是数字?例如charA='与';charB='你';StringC="你好啊";StringD... 我是个初学手
看视频人家敲代码
我也模仿敲代码
和人家一模一样 为什么我输出出来的却是数字?
例如
char A='与';
char B='你';
String C="你好啊";
String D=A+B+C
System.out.println(D);
解析出来的是 : 5656你好啊
展开
 我来答
银河漫步者u4v
推荐于2016-10-03 · 超过18用户采纳过TA的回答
知道答主
回答量:38
采纳率:100%
帮助的人:16.9万
展开全部
char是Java中的保留字,与别的语言不同的是,char在Java中是16位的,因为Java用的是Unicode。不过8位的ASCII码包含在Unicode中,是从0~127的。

Java中使用Unicode的原因是,Java的Applet允许全世界范围内运行,那它就需要一种可以表述人类所有语言的字符编码。Unicode。但是English,Spanish,German, French根本不需要这么表示,所以它们其实采用ASCII码会更高效。这中间就存在一个权衡问题。

因为char是16位的,采取的Unicode的编码方式
可以是汉字,因为是Unicode编码
String D=A+B+C
实际上是
String D = String.valueOf((int)A + (int)B) + C;

'与'的int值是19982,‘你'的int值是20320 ,所以加起来是40302。
你的输出结果是5656,可能是你的A值不是'与',B值不是'你'。

如果要输出字符串可以类型转换: String D = String.valueOf(A) + String.valueOf(B) + C;
过璞Va
2015-07-28 · TA获得超过1967个赞
知道小有建树答主
回答量:328
采纳率:100%
帮助的人:304万
展开全部
可能是java版本问题
char A='与';
char B='你';
int E = (int)A;

int F = (int)B;
发现

A=19982
B=20320
我机器出来最后结果是:40302你好啊
反推D=A+B+C过程
A+B是同类型是数字相加,再+C时因为C是String类型,所以数字转化成了String类型

java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
林莫_
2015-07-28
知道答主
回答量:40
采纳率:0%
帮助的人:14.3万
展开全部
你的类型问题吧,char是字符型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
河滩上的蝎子
2015-07-28 · 超过34用户采纳过TA的回答
知道答主
回答量:72
采纳率:100%
帮助的人:54.3万
展开全部
你确定和别人一模一样?String D = C+A+B; 就能输出纯字符串.
追问
入门问题啊  大神

我已经确定一样了 但还是报错

你不能帮我找出问题?

如果我敲的跟视频不一样我不就找不出来了吗? 就是因为和是视频一样还是报错我才过来问的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式