- ベストアンサー
\uxxxx において変数を使う方法
Unicode文字を出力するのに\uxxxx(xは16進定数)という方法がありますが、 定数だけでなく、変数は使えないのですか? 調べてみた限りではまったくそういう記述はないし、 自分で試した限りではできなかったんですが。 よろしくお願いします。
- みんなの回答 (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; と書いても同じことになります。(実際にこのような書き方をすることはまずありませんが)
お礼
ありがとうございます。 charにキャストすれば近いことが出来るんですね。 勉強になりました。