
No.4ベストアンサー
- 回答日時:
> unicodeでたとえ3桁があってもjavaの文字リテラルまたは、
> 文字列リテラルもしくはString 型は \uXXXX 4桁で表示すると
> 理解していいのでしょうか?
表示する、というのがよくわかりませんが、とにかく、\uXXXX は4桁で無いとだめということです。
> また\uXXXX 4桁はStringBufferでも使用可でしょうか?
何か \uXXXX の表記法について誤解していらっしゃるようです。
たとえば、ユニコード文字 \u00c0 (Aに点がついた文字)をソースコードに入力しようとしても、ソースファイルがSHIFT-JISでエンコードされている限りは、このようなSHIFT-JISに無い文字は入力できませんね。
そこで、ソースコードに目的の文字を直接入れるのではなく、\u00c0 の形をした「代替表現」を使うことで、「そこにはAに点がついた文字が入力されているとみなしてくれ」と、コンパイラーに伝えるのです。
するとコンパイラーは、「なるほど、Aに点がついた文字をつかうのですね」と、バイトコード生成の時に代替表現である \u00c0 から、本来の文字である「Aに点がついた文字」に変換するのです。
さて、実際にプログラムを実行する時ですが、バイトコード(classファイル)に記憶されている文字は、コンパイルの時点ですでに本来の目的の文字に変換されていますから、\uXXXX のような表現はもうありません。
ですから、String だとか StringBuffer だとか気にする必要はありません。そのような心配は別次元の話なのです。
なお、代替表現と書きましたが、SHIFT-JISにある文字でもユニコード番号さえわかれば \uXXXX の形で表記することもできます。
No.5
- 回答日時:
Unicode が3桁か4桁か、の問題ではなく、
Java の言語仕様として、\u のうしろは4桁でなければならない、
とされています。
あと、UKYさんも発言されてますが、
コンパイラは、コンパイルするとき、まず最初に \uXXXX という記述を
それが示す文字に変換します。
文法の解析などは全てその後です。なので、
> ですから、String だとか StringBuffer だとか気にする必要はありません。
> そのような心配は別次元の話なのです。
のとおりです。
No.3
- 回答日時:
はい、必ず4桁です。
従って、\u20 のように書くことはできなくて、\u0020 のようにする必要があります。
逆に、u はいくらあってもかまいません。
\u0020 も \uu0020 も \uuu0020 も同じです。
(実際に u をいくつも書いているのを見たことはありませんが)
また、\uXXXX の表記法は文字リテラルや文字列リテラルでしか使えないわけではありません。
例えば、次の2文は同じになります。
String str = "Sample";
\u0053\u0074\u0072\u0069\u006e\u0067 str \u003d "Sample";
(\u0053\u0074\u0072\u0069\u006e\u0067 が String に、\u003d が = になります)
UKY様
大変詳しい内容で感謝しております。
少し気になったのが、-soh-様の解答で3桁もあるという
ことで参考ホームページを拝見いたしました。
すると下記の様にunicodeでは、どうも3桁もあるようでした。
例)基本ローマ字の大文字 ABCDEFGHIJKLMNOPQRSTUVWXYZ は
U+0041-005A
unicodeでたとえ3桁があってもjavaの文字リテラルまたは、文字列リテラル
もしくはString 型は \uXXXX 4桁で表示すると理解していいのでしょうか?
また\uXXXX 4桁はStringBufferでも使用可でしょうか?
よろしくお願い申し上げます。
No.2
- 回答日時:
こんにちわ、sohです
3桁も確かありましたよ
http://www-6.ibm.com/jp/developerworks/unicode/0 …
って、あ、もしかして\uXXXX
で4桁って表現でした?
だとするとunicodeマップが・・・・
あぅ、ごめん、すでに消えてたや(とほほ
-soh-様
ホームページ情報ありがとうございました。
早速拝見させていただきました。
unicodeは3桁もあるようですね。
ありがとうございした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 8 win8 "ベータ ワールドワイド言語サポートで Unicode UTF-8 を使用"を出したい 2 2023/05/23 19:57
- C言語・C++・C# VisualStudioのソースコードで漢字を使いたい 4 2022/05/21 10:16
- その他(プログラミング・Web制作) iMacのターミナルにユニコード文字を出す方法 2 2022/06/22 21:48
- その他(コンピューター・テクノロジー) 重たいunicodeについて 今って重たい文字を使った荒らし行為って効果あるのですか? 最近はスマホ 1 2022/12/20 14:34
- Excel(エクセル) 幾何学模様のセル内貼り付け 1 2023/07/11 00:45
- Perl perlでリテラル値はメモリにどのように格納されているか? 1 2023/01/15 20:45
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- Perl perlについての質問 2 2022/10/17 15:25
- Visual Basic(VBA) VBA B列にある前から10文字のみ表示 3 2023/08/07 11:24
- その他(人文学) 特殊?な文字の入力 4 2022/10/23 09:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
シフトJISのエンコード
-
javascriptで文字列のsjis利用...
-
String <=> byte配列 の際のエ...
-
DOMのXML宣言値の変更
-
ダブルクォーテーションのrepla...
-
C言語32bitから64bitの移行につ...
-
スクリプトとは?
-
カタカナ変換
-
javaで質問です。 文字列2023/2...
-
IE11においてのIME予測変換時の...
-
オラクルで、半角文字を全角に...
-
JAVAでのShift-JISとEUC-JP間の...
-
秒数(Long)→HH:mm:ssへの変換...
-
半角全角混在データの中の半角...
-
javaで「全角が含まれているか...
-
int型のゼロ埋め
-
javaの初歩的な質問です。
-
特殊文字「\\」の変換の方法
-
DBから取得したデータの文字化け
-
System.out.printlnの意味がよ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javaで質問です。 文字列2023/2...
-
ダブルクォーテーションのrepla...
-
javascriptで文字列のsjis利用...
-
javaの初歩的な質問です。
-
Visual Basic でのコードをASCI...
-
JavaのStringクラスに「外字」...
-
Path型をString型へ変換する(Java)
-
エクセルVBAで「〜」が表現でき...
-
int型のゼロ埋め
-
JAVAでのShift-JISとEUC-JP間の...
-
C言語32bitから64bitの移行につ...
-
UTF-8とUnicodeの互換性
-
文字列の比較
-
COBOLで半角カナを全角カナに変換
-
substring バイト単位でやりたい
-
Windows-31Jからutf-8への変換...
-
カタカナをローマジに変換する。
-
[Javascript]エンターキー押下...
-
byte型のマイナスの扱いについて
-
文字化け対策について
おすすめ情報