• ベストアンサー

\uxxxx において変数を使う方法

Unicode文字を出力するのに\uxxxx(xは16進定数)という方法がありますが、 定数だけでなく、変数は使えないのですか? 調べてみた限りではまったくそういう記述はないし、 自分で試した限りではできなかったんですが。 よろしくお願いします。

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

  • ベストアンサー
  • UKY
  • ベストアンサー率50% (604/1207)
回答No.1

変数を使うというのは、たとえばこういうことですか? int integer = 0x20; char character = '\uinteger'; if (character == '\u0020') ~~~~ これは残念ながらできません。\uxxxxという表現はコンパイル時に実際のUnicode文字に置き換えられることになっているので、変数のように実行時に動的に変化する値に対して使うことはできないのです。 ただ、intやshortの変数にUnicode文字のコードが入っている場合は、単にcharにキャストするだけで変換できます。 int integer = 0x20; char character = (char) integer; // OK if (character == '\u0020') ~~~ ついでですが、\uxxxxの表現は文字や文字列以外のところでも使えます。たとえば、\u0069はアルファベットのiに置き換えられるので、 int integer = 12345; というコードを \u0069nt \u0069nteger = 12345; と書いても同じことになります。(実際にこのような書き方をすることはまずありませんが)

egoh
質問者

お礼

ありがとうございます。 charにキャストすれば近いことが出来るんですね。 勉強になりました。

関連するQ&A