9

そこで、「Java In A Nutshell」を読み始めたところ、第 1 章では次のように述べられています。

「Java プログラムに文字リテラルを含めるには、単一引用符で囲むだけです」つまり

char c = 'A'; 

これは正確に何をしますか?char は 0 ~ 65,535 の値しか取り込めないと思いました。「A」を割り当てる方法がわかりませんか?

「B」をintに割り当てることもできますか?

int a = 'B'

「a」の出力は 66 です。上記の ^ 操作をどこで/なぜ使用しますか?

これがばかげた質問である場合は、申し訳ありません。

私の人生はすべて嘘でした。

4

3 に答える 3

10

char実際には整数型です。問題の文字の 16 ビット Unicode 整数値を格納します。

http://asciitable.comのようなものを見て、さまざまな文字のさまざまな値を確認できます。

于 2012-12-12T22:45:16.030 に答える
2

ASCII チャートを見ると、文字「A」の値は 16 進数で 41、10 進数で 65 です。文字を使用し'て単一の文字を括弧で囲むと、文字リテラルになります。二重引用符 ( ") を使用すると、文字列リテラルになります。

割り当てchar someChar = 'A';は、と言うのとまったく同じchar someChar = 65;です。

その理由については、単純に String に 10 進数が含まれているかどうかを確認したい場合 (そして、これを行うための便利な関数がない場合) を検討してください。次のようなものを使用できます。

bool isDecimal = true;
for (int i = 0; i < decString.length(); i++) {
    char theChar = decString.charAt(i);
    if (theChar < '0' || theChar > '9') {
        isDecimal = false;
        break;
    }
}
于 2012-12-12T22:50:21.683 に答える
2

Java の char リテラルは、UTF-16 (文字エンコード スキーマ) コード単位を表します。UTF-16 から得られるのは、整数値 (およびメモリに保存される方法) と対応する文字 (単位コードのグラフィック表現) との間のマッピングです。

文字を一重引用符で囲むことができます。これにより、使用する文字の UTF-16 値を覚えておく必要がなくなります。文字型から整数値を取得して、たとえば int 型の場合は配置できます (ただし、一般的にはどちらも 16 ビットを使用しますが、短い値は -32768 から 32767 で、char 値は 0 から 65535 程度です)。 .

于 2012-12-12T22:57:51.280 に答える