0

私は本当に理解できないことで立ち往生しています。ここの誰かが理解してくれることを願っています。

「nextOne」が値51を保持する理由を誰か説明できますか? 式配列のインデックス 2 が数値 3 であることは明らかですが、なぜ nextOne に 3 ではなく 51 を格納するのでしょうか?

ここにあります: 文字配列の値を読み取る際の問題

4

9 に答える 9

4

配列内の文字は「3」です。それは 51 の Unicode 値を持っています - それは文字 U+0033 です。

のタイプnextOneをではなく に変更すると、char代わりにint「3」が表示されます。

文字としての数字と整数値の違いを理解することは重要です。また、文字の背後に潜む数字を理解することも重要です。Java では、基本的に UTF-16 コード単位です。

于 2011-09-28T19:01:05.707 に答える
2

51 は数値の ASCII 値であるため3です。

于 2011-09-28T19:01:08.250 に答える
2

文字'3'は整数値51(ASCII/Unicode 値) に対応します。

于 2011-09-28T19:01:24.940 に答える
1

51 は 3 の ASCII コードです。expressionは char の配列であり、 でnextOneあるintため、char を int に変換する必要があります。

于 2011-09-28T19:03:09.707 に答える
1

nextOne には文字 の値が含まれます。文字 '3' の場合は 51 です。

文字で表される数字が必要な場合は、変換する必要があります。ASCII では、文字「0」の値を減算することで実行できます。

于 2011-09-28T19:01:51.710 に答える
1

最初の桁は3で、その ASCII コードは 51 です。

于 2011-09-28T19:01:22.040 に答える
0

やったよ!それは今うまくいきます、そして私はあなたたちなしではそれをすることができなかったでしょう。でも!皆さんが私にオプションを提案したのはおかしいですが、(私の意見では)究極のオプションではありません。保存されていた整数は、実際の整数3ではなく、3のASCIIコードであると皆さんは私に言いました。これは、CharacterクラスのメソッドgetNumericValue(char)を思い出させました。このメソッドを使用すると、自分自身を変換せずに、char配列から整数3を取得するだけでした。

nextNumber = nextNumber * 10 + Character.getNumericValue(expression[k]);

アップロードされた画像へのリンクを編集してくれた@howardに感謝します

于 2011-09-29T13:48:50.647 に答える
0

数値 3 の ASCII コードは 51 です。次の式が"true"コンソールに出力されます。

System.out.println('3' == (char) 51);

詳細については、ASCII テーブルを参照してください。

于 2011-09-28T19:03:55.050 に答える
0

'0'整数値を取得するために減算する必要がある数字が必要な場合は、文字「3」のASCIIコードが表示されます

于 2011-09-28T19:04:25.590 に答える