APIを使わずに文字を大文字に変換します.

4595 ワード

APIを使わずに文字を大文字に変換します.
APIを使う
java.lang.Stringまたはjava.lang.racterがtoUpperCase()とtoLowerCase()の方法(違い:Stringパッケージの文字列を大文字列に変換することができますが、Charcterパッケージの下にあるのは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 a
APIは使用しない
System.out.println((char)('a' ^ 32));
System.out.println((char)('A' ^ 32));
印刷結果:A a
原理は以下の通りです.A=01010101000 B=0101010101000 10 C=0101010101000 E=0101010010 F=0101010101010101 G=01010101010101 H=010101010101 J=0101010101010101010101 m=01010101 N=0101010101010101 P=10000 P=10000 Q=0101 R=01010101010101010101010101010101010101010101010101010101 R=0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101
a=0110001 b=010110010 c=0110011 d=01100100 e=01100101 f=01100110 g=01100111 h=01101000 i=010101010101010101010101010101010101010 k=01101100 m=01101101 n=0101101 p=010101110 p=01010101010101000 q=0101010101010101010101010101010101 r=1100101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010
大文字A-Zと小文字a-zのバイナリをそれぞれ並べたら、左から右にかけて3番目の数字が異なる以外は同じであることが分かります.したがって、対応する文字は^(異種または演算子)32(バイナリ:00100000)の同じビットが0に等しく、同じビットが1に等しくないことによって得られます.
0110 0001   a
            ^
0010 0000   32
			=
0100 0001   A