APIを使わずに文字を大文字に変換します.
4595 ワード
APIを使わずに文字を大文字に変換します.
APIを使う
java.lang.Stringまたはjava.lang.racterがtoUpperCase()とtoLowerCase()の方法(違い:Stringパッケージの文字列を大文字列に変換することができますが、Charcterパッケージの下にあるのはcharタイプのみです)
APIは使用しない
原理は以下の通りです.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に等しくないことによって得られます.
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 aAPIは使用しない
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