不用使用API将字符进行大小写转换

不用使用API将字符进行大小写转换

使用API

java.lang.String或java.lang.Character包下toUpperCase()和toLowerCase()方法(区别:String包下的能对字符串进行大小写转换,而Character包下的只能针对char类型进行使用)

		System.out.println("a".toUpperCase());
        System.out.println("A".toLowerCase());
        System.out.println(Character.toUpperCase('a'));
        System.out.println(Character.toLowerCase('A'));

打印结果:
A
a
A
a

不使用API

System.out.println((char)('a' ^ 32));
System.out.println((char)('A' ^ 32));

打印结果:
A
a

原理如下:
A=01000001 B=01000010 C=01000011 D=01000100 E=01000101 F=01000110 G=01000111 H=01001000 I=01001001 J=01001010 K=01001011 L=01001100 M=01001101 N=01001110 O=01001111 P=01010000 Q=01010001 R=01010010 S=01010011 T=01010100
U=01010101 V=01010110 W=01010111 X=01011000 Y=01011001 Z=01011010

a=01100001 b=01100010 c=01100011 d=01100100 e=01100101 f=01100110 g=01100111 h=01101000 i=01101001 j=01101010 k=01101011 l=01101100 m=01101101 n=01101110 o=01101111 p=01110000 q=01110001 r=01110010 s=01110011 t=01110100
u=01110101 v=01110110 w=01110111 x=01111000 y=01111001 z=01111010

将大写A-Z和小写a-z的二进制分别列出会发现除了从左到右第三个数字不同,其他都相同,于是可以通过^(异或运算符)32(二进制:00100000)相同位等于0,不同位等于1来得出对应的字符

0110 0001   a
            ^
0010 0000   32
			=
0100 0001   A
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值