- ベストアンサー
リテラルの問題
よろしくお願いします。 JAVAの勉強をしているのですが、リテラルのことで質問です。お願いいたします。 String s7 = 100+'A' + "hello" が 'A'がintと解釈されて答えは165helloになるそうなのですが、どうやって変換すると165なのか分かりませんでした。 どなたかお教えいただけませんか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
100+'A' の「+」は数値としての足し算なので 165 と計算されます。 その次の「+」は文字列の連結の記号ですので、 165 という「数値」の文字列表現に「hello」という文字列を連結したものになります。 >String s7 = 100+'A' + "hello" を試しに String s7 = ""+100+'A' + "hello"; としてみると、最初に「長さ0の文字列」に「100」という数値の文字列表現、 さらに「A」という文字、 さらに「hello」という文字列 が連結されて 100Ahello となります。 1度でも文字列が現れると、それ以降は文字列として扱われます。 って間違ってるかも。(^^;A
その他の回答 (2)
- mu2011
- ベストアンサー率38% (1910/4994)
回答No.2
以下の通りです。 char 型のリテラルはシングル・クオティション (') で括られるます。従って、'A'をコード表現すると【\u0041(hex)】になり、10進数では65になるからです。
- royaltomato
- ベストアンサー率38% (21/55)
回答No.1
文字コードの決まりごと。
質問者
お礼
調べているうちに・・・もしや? と思ってました。 ありがとうございます^^
お礼
ありがとうございました。 勝手に65って!!って思ってました。 助かりました。次の問題いってみます。