• ベストアンサー

リテラルの問題

よろしくお願いします。 JAVAの勉強をしているのですが、リテラルのことで質問です。お願いいたします。 String s7 = 100+'A' + "hello"  が 'A'がintと解釈されて答えは165helloになるそうなのですが、どうやって変換すると165なのか分かりませんでした。 どなたかお教えいただけませんか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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になるからです。

yusuke_e_2002
質問者

お礼

ありがとうございました。 勝手に65って!!って思ってました。 助かりました。次の問題いってみます。

回答No.1

文字コードの決まりごと。

参考URL:
http://homepage3.nifty.com/mmgames/c_guide/14-01.html
yusuke_e_2002
質問者

お礼

調べているうちに・・・もしや? と思ってました。 ありがとうございます^^

関連するQ&A