の整数に文字を変換すると、誰かがここで何が起こっているか私に説明していただけます。Javaの
char c = '+';
int i = (int)c;
System.out.println("i: " + i + " ch: " + Character.getNumericValue(c));
これはi: 43 ch:-1
を印刷します。これは、char
をint
に変換するための原始的な変換に依存しなければならないということですか?では、Character
をInteger
に変換するにはどうすればよいですか?
編集:それが数値ではありません、それは私には理にかなっている場合は、[はい、私はCharacter.getNumericValue
戻り-1
を知っています。問題は、プリミティブな変換を行うと、なぜ43
が返されるのですか?
EDIT2:43
+
のASCIIですが、私はキャストがgetNumericValue
が成功しなかったと同じように成功しないことを期待します。それ以外の場合は、同じ操作を実行するには2つの意味的に同等の方法がありますが、結果は異なります。
を、あなたが取得する代わりに、 '43'ことを期待したのは何? –
私は 'getNumericValue'はあなたが思っているとは思いません。これは、文字を整数に変換するユーティリティメソッドです(文字 '5'を整数5と同じように)。これはキャスト(文字 '5'を整数53に変換する)と同じではありません。 – Aurand
キャストは数字の数値を返しません。これらの2つの操作は2つの異なることを行います。 – SLaks