2017-10-30 10 views
-5

charAtは機能していません...構造体の中のある部分の値ではなく、ハッシュコードを返しています。CharAt in Java 8

例:のcharAt(0)私が行うことができアム何を49としませ1

を「1」に戻っているさ!

+0

ようこそスタックオーバーフロー! [mcve]を投稿してください。あなたのコードが何であるかははっきりしていません。 – 4castle

+6

正しいです。文字 '1'を返します。これは 'int'として扱われるときに値49を持ちます。 –

+0

あなたのコードは返された値をintにキャストしています...' char'にキャストすると '1' – alfasin

答えて

2

It >>は< <です。その文字をcharとして返信しています(恐らくあなたがintに割り当てて印刷しています)。文字'1'のASCII/Unicodeコードポイントの数値は49です。これを文字として印刷/表示する場合は、intcharにキャストします。 (または最初にintに割り当てないでください)

レコードの場合、Characterによって返されるhashCode値は文字値と同じです。厳密に言えば、charは、それがプリミティブな値であり、プリミティブはメソッドを持たないので、hashCodeを持たない。

+0

答えに追加するには、charsのint値が[ascii値](https://www.cs.cmu.edu/~pattis/15-1XX/common/handouts/ascii.html)であることに言及する価値があります。 – luckydog32

+0

完了しました。ありがとう。 –