char没有‘’

public static void main(String[] args) {

char c = '\u0000';
//返回TRUE,说明相等
System.out.println(c == (char) 0);

//一个是空字符,一个是空格,查ASCII码表知道的

System.out.println((char) 0);
System.out.println((char) 32);

//疑问1: 为什么打印出的都是空格,但是前后的AB字母字体不一样
System.out.println("a" + String.valueOf((char) 32) + "b");
System.out.println("a" + String.valueOf((char) 0) + "b");不是空格,而是显示不出来的字符。IDE引起

http://topic.youkuaiyun.com/u/20110904/10/78b30f9f-46c4-4a1b-951a-cd94838b9d57.html?834

//既然\u0000是空字符,为什么有长度1
System.out.println(String.valueOf((char) 0).length());
System.out.println(String.valueOf((char) 32).length());

}

知识点1:

trim是把小于\u0020都的字符都去掉了

知识点2:

系统的问题,(char)0本身是个字符,变成字符串有长度是可以理解的,但是(char)0是个非显示字符,所以打印时看不出来的,包括打印到文件也看不出来(如果用二进制的方式打开文件能看到相应的字节码,但是字符本身没有被显示出来)。
10L的代码在winxp上可以的,但是在Win7上不行,也就是说java在win7系统上作了特殊处理,把原来的非显示字符用空格代替显示出来了。
System.out.println(String.valueOf((char)0).length());
System.out.println(String.valueOf((char)0).trim().length()); //trim以后发现不一样了。

——》字符类型(char):

n字符型数据代表16位的Unicode字符

n字符常量是用单引号括起来的一个字符

n‘a’ ‘B’ ‘\n’ ‘\u0030’

n字符型数据的取值范围为

n0~65535或者说\u0000~\uFFFF

n\u0000为缺省值

n示例

ncharc1;\\缺省值为0

ncharc2 = ‘0’;\\赋初值为字符‘0’

ncharc3 =32;\\用整数赋初值为空格

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值