新人第一帖求助

maobuchishi 2016-08-15 09:41:45
class Shudemo2
{
public static void main(String[] args)
{
//直接指定单个字符作为字符值
char aChar = 'a';

//使用转移字符来作为字符值
char enterChar = '\r';

//使用Unicode编码值来指定字符值
char ch = '\u9999';

//将输出一个‘香’字符
System.out.println(ch);

//定义一个‘疯’字符值
char zhong = '疯';

//直接将一个char变量当成int类型变量使用
int zhongValue = zhong;
System.out.println(zhongValue);

//直接把一个0~65535范围内的int整数赋给一个char变量
char c = 97;
System.out.println(c);

String s = "沧海桑田";
System.out.println(s);
}

}
各位大腿,我是跟着XX讲义那本书自学的,有些地方实在是搞不懂。前三个语句为什么会输出一个《香》字啊? 还有zhongValue这个变量输出的是30127, c变量输出的结果是字母《a》 实在是不解
...全文
225 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
maobuchishi 2016-08-15
  • 打赏
  • 举报
回复
引用 3 楼 an_2016 的回复:
1,\u9999是unicode字符集的表示方法,对应的中文就是香, 2,涉及到字节与编码的东西,解释不清楚,去网上查, 3,这个是ascII编码集,小写a在asc码表里面就是97,相对应, 4,这个是正常的字符串,正常输出
谢谢!!!
maobuchishi 2016-08-15
  • 打赏
  • 举报
回复
引用 2 楼 NewMoons 的回复:
上面有句话有误:帮你分解下:十进制【75af】 = 十六进制【75af】 应该是帮你分解下:十进制【30127】 = 十六进制【75af】
谢谢!!
maobuchishi 2016-08-15
  • 打赏
  • 举报
回复
引用 1 楼 NewMoons 的回复:
前三个语句为什么会输出一个《香》字啊? 因为java的char类型是用2个字节来存储字符的,而且默认用的是Unicode编码(所有字符都用2个字节编码,再往深了理解请自行百度)在java里用\u表示Unicode编码,后面的9999表示转换为16进制后的编码(二个字节分别为99 和 99),二进制就是10011001和10011001 Unicode可同时包含65536个字符,ASCII/ANSI只包含255个字符,实际上是Unicode的一个子集。Unicode字符通常用十六进制编码方案表示,范围在'\u0000'到'\uFFFF'之间。\u0000到\u00FF表示ASCII/ANSI字符。\u表示这是一个Unicode值. 还有zhongValue这个变量输出的是30127 '疯'这个字的Unicode编码从二进制转成十进制就是30127,这个没什么不好理解的啊? 帮你分解下:十进制【75af】 = 十六进制【75af】 你试试【System.out.println('\u75af');】这句看看输出什么字? c变量输出的结果是字母《a》 实在是不解 char c = 97; System.out.println(c); 这里c用十进制97表示编码,其十六进制是61 你试试【System.out.println('\u0061');】这句看看输出什么字? 理解了么? 楼主感觉你对字符编码的知识很欠缺,换句话说对计算机原理的知识也比较欠缺。应该不是科班出身。 建议你百度下ascii编码、unicode编码或者干脆 java字符编码等等关键字好好看看。
我是科班maya出身的,做设计的纯绘画功底不好一直就是软件民工所以在想着转行!囧
科比请留步 2016-08-15
  • 打赏
  • 举报
回复
1,\u9999是unicode字符集的表示方法,对应的中文就是香, 2,涉及到字节与编码的东西,解释不清楚,去网上查, 3,这个是ascII编码集,小写a在asc码表里面就是97,相对应, 4,这个是正常的字符串,正常输出
NewMoons 2016-08-15
  • 打赏
  • 举报
回复
上面有句话有误:帮你分解下:十进制【75af】 = 十六进制【75af】 应该是帮你分解下:十进制【30127】 = 十六进制【75af】
NewMoons 2016-08-15
  • 打赏
  • 举报
回复
前三个语句为什么会输出一个《香》字啊? 因为java的char类型是用2个字节来存储字符的,而且默认用的是Unicode编码(所有字符都用2个字节编码,再往深了理解请自行百度)在java里用\u表示Unicode编码,后面的9999表示转换为16进制后的编码(二个字节分别为99 和 99),二进制就是10011001和10011001 Unicode可同时包含65536个字符,ASCII/ANSI只包含255个字符,实际上是Unicode的一个子集。Unicode字符通常用十六进制编码方案表示,范围在'\u0000'到'\uFFFF'之间。\u0000到\u00FF表示ASCII/ANSI字符。\u表示这是一个Unicode值. 还有zhongValue这个变量输出的是30127 '疯'这个字的Unicode编码从二进制转成十进制就是30127,这个没什么不好理解的啊? 帮你分解下:十进制【75af】 = 十六进制【75af】 你试试【System.out.println('\u75af');】这句看看输出什么字? c变量输出的结果是字母《a》 实在是不解 char c = 97; System.out.println(c); 这里c用十进制97表示编码,其十六进制是61 你试试【System.out.println('\u0061');】这句看看输出什么字? 理解了么? 楼主感觉你对字符编码的知识很欠缺,换句话说对计算机原理的知识也比较欠缺。应该不是科班出身。 建议你百度下ascii编码、unicode编码或者干脆 java字符编码等等关键字好好看看。

62,625

社区成员

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

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