汉字字符为什么会大于255?有代码。高手请指教

年华似水 2009-12-08 01:36:42

System.out.println("/---------test1 = " + ('中' > 255)); // 结果true
System.out.println("/---------test2 = " + ('a' > 255)); // 结果false


我想问一下,他们比较的到底是什么?肯定不是ASC
...全文
201 11 打赏 收藏 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yang677888 2009-12-08
  • 打赏
  • 举报
回复

System.out.println("/---------test1 = " + ('中' > 255)); // 结果true
System.out.println("/---------test2 = " + ('a' > 255)); // 结果false

String比较字符串,实际是比较hashCode,hashCode不一样所以结果不一样
relucent 2009-12-08
  • 打赏
  • 举报
回复
字符和int比较的时候会转化成int比较。

'中' > 255
(int)'中' > 255
20013 > 255
relucent 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wuyongai0563 的回复:]
这跟编码方式没有关系,比较的是其hashCode值 
System.out.println("/---------test1 =  " + "中".hashCode());  // 结果20013
System.out.println("/---------test2 =  " + "a".hashCode());  // 结果97
[/Quote]

人家是字符,你是字符串,字符哪来的hashCode
duzhongming 2009-12-08
  • 打赏
  • 举报
回复
学习
wuyongai0563 2009-12-08
  • 打赏
  • 举报
回复
这跟编码方式没有关系,比较的是其hashCode值
System.out.println("/---------test1 = " + "中".hashCode()); // 结果20013
System.out.println("/---------test2 = " + "a".hashCode()); // 结果97
kuangfengyu1387 2009-12-08
  • 打赏
  • 举报
回复
输出一下
char str='中';
int str2 =(int)str;
System.out.println(str2);
kuangfengyu1387 2009-12-08
  • 打赏
  • 举报
回复
输出一下
char str='中';
int str2 =(int)str;
System.out.println(str2);
kuangfengyu1387 2009-12-08
  • 打赏
  • 举报
回复
输出一下
char str='中';
int str2 =(int)str;
System.out.println(str2);
relucent 2009-12-08
  • 打赏
  • 举报
回复
'中'的Ascii是4E2D (20013)
老紫竹 2009-12-08
  • 打赏
  • 举报
回复
汉字的unicode编码当然大于255了
whut0802 2009-12-08
  • 打赏
  • 举报
回复
那要看你的汉字是什么样的编码方式了

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧