文字リテラル
日本語 | 文字定数値 |
英語 | character literal |
ふりがな | もじりてらる |
フリガナ | モジリテラル |
リテラルのひとつ。
一文字を表す定数値。
「'」(シングルクォート)で一文字を囲むと、その一文字は文字リテラルとみなされる。
文字リテラルは、char型の整数値としてみなされる。整数値の値は、Unicodeで定義された「文字に対応する整数値」である。通常はこれをchar型変数に格納して使用する。
文字リテラルにはエスケープシーケンスを記述することもできる。
文字リテラルには一文字しか格納できない。「'あい'」のように二文字以上にするとコンパイルエラーになる。また「''」のようにゼロ文字でもコンパイルエラーになる。
文字リテラルはあくまで「整数値の記述方法のひとつ」である。そのため、上記の例のように、ひとつの整数値に対応しないような文字リテラルは記述できないということである。
一文字を表す定数値。
「'」(シングルクォート)で一文字を囲むと、その一文字は文字リテラルとみなされる。
文字リテラルは、char型の整数値としてみなされる。整数値の値は、Unicodeで定義された「文字に対応する整数値」である。通常はこれをchar型変数に格納して使用する。
文字リテラルにはエスケープシーケンスを記述することもできる。
文字リテラルには一文字しか格納できない。「'あい'」のように二文字以上にするとコンパイルエラーになる。また「''」のようにゼロ文字でもコンパイルエラーになる。
文字リテラルはあくまで「整数値の記述方法のひとつ」である。そのため、上記の例のように、ひとつの整数値に対応しないような文字リテラルは記述できないということである。
参考サイト
- (参考サイトはありません)
// Sample.java
public class Sample
{
public static void main( String[] args )
{
// 「'」で囲んだ一文字は文字リテラルになります。
// char型変数を宣言して、文字リテラル「あ」を格納します。
char ch = 'あ';
System.out.println( ch );
// あ
// これは、「あ」を示す整数値0x3042を格納しているのと
// 同じです。
char ch2 = 0x3042;
System.out.println( ch2 );
// あ
// このように、文字リテラルそのものは、char型の整数値
// です。Unicodeのこの文字に対応する整数値です。
int i = 'あ';
System.out.println( i );
System.out.println( Integer.toHexString( i ) );
// 12354
// 3042
// なので、演算をすることもできます。
char ch3 = 'あ' + 1;
System.out.println( ch3 );
System.out.println( (int)ch3 );
// ぃ
// 12355
// 文字は数字なんだ、というイメージを常に持ちましょう。
// 文字リテラルにはエスケープシーケンスを書くことも
// できます。
char ch4 = '\'';
System.out.println( ch4 );
// '
// 文字リテラルはchar型です。
// ※コンパイルエラーの例
// byte bt = 'あ';
// ※エラーメッセージ
// 型の不一致: char から byte には変換できません
// ※コンパイルエラーの例ここまで
// 複数の文字、つまり文字列だとコンパイルエラーになります。
// ※コンパイルエラーの例
// char ch5 = 'あいうえお';
// ※エラーメッセージ
// 文字定数が無効です
// ※コンパイルエラーの例ここまで
// 普通に文字列リテラルを使用しましょう。
// 空文字もコンパイルエラーになります。
// ※コンパイルエラーの例
// char ch5 = '';
// ※エラーメッセージ
// 文字定数が無効です
// ※コンパイルエラーの例ここまで
// 普通に文字列リテラルを使用しましょう。
}
}
public class Sample
{
public static void main( String[] args )
{
// 「'」で囲んだ一文字は文字リテラルになります。
// char型変数を宣言して、文字リテラル「あ」を格納します。
char ch = 'あ';
System.out.println( ch );
// あ
// これは、「あ」を示す整数値0x3042を格納しているのと
// 同じです。
char ch2 = 0x3042;
System.out.println( ch2 );
// あ
// このように、文字リテラルそのものは、char型の整数値
// です。Unicodeのこの文字に対応する整数値です。
int i = 'あ';
System.out.println( i );
System.out.println( Integer.toHexString( i ) );
// 12354
// 3042
// なので、演算をすることもできます。
char ch3 = 'あ' + 1;
System.out.println( ch3 );
System.out.println( (int)ch3 );
// ぃ
// 12355
// 文字は数字なんだ、というイメージを常に持ちましょう。
// 文字リテラルにはエスケープシーケンスを書くことも
// できます。
char ch4 = '\'';
System.out.println( ch4 );
// '
// 文字リテラルはchar型です。
// ※コンパイルエラーの例
// byte bt = 'あ';
// ※エラーメッセージ
// 型の不一致: char から byte には変換できません
// ※コンパイルエラーの例ここまで
// 複数の文字、つまり文字列だとコンパイルエラーになります。
// ※コンパイルエラーの例
// char ch5 = 'あいうえお';
// ※エラーメッセージ
// 文字定数が無効です
// ※コンパイルエラーの例ここまで
// 普通に文字列リテラルを使用しましょう。
// 空文字もコンパイルエラーになります。
// ※コンパイルエラーの例
// char ch5 = '';
// ※エラーメッセージ
// 文字定数が無効です
// ※コンパイルエラーの例ここまで
// 普通に文字列リテラルを使用しましょう。
}
}
// Sample.java public class Sample { public static void main( String[] args ) { // 「'」で囲んだ一文字は文字リテラルになります。 // char型変数を宣言して、文字リテラル「あ」を格納します。 char ch = 'あ'; System.out.println( ch ); // あ // これは、「あ」を示す整数値0x3042を格納しているのと // 同じです。 char ch2 = 0x3042; System.out.println( ch2 ); // あ // このように、文字リテラルそのものは、char型の整数値 // です。Unicodeのこの文字に対応する整数値です。 int i = 'あ'; System.out.println( i ); System.out.println( Integer.toHexString( i ) ); // 12354 // 3042 // なので、演算をすることもできます。 char ch3 = 'あ' + 1; System.out.println( ch3 ); System.out.println( (int)ch3 ); // ぃ // 12355 // 文字は数字なんだ、というイメージを常に持ちましょう。 // 文字リテラルにはエスケープシーケンスを書くことも // できます。 char ch4 = '\''; System.out.println( ch4 ); // ' // 文字リテラルはchar型です。 // ※コンパイルエラーの例 // byte bt = 'あ'; // ※エラーメッセージ // 型の不一致: char から byte には変換できません // ※コンパイルエラーの例ここまで // 複数の文字、つまり文字列だとコンパイルエラーになります。 // ※コンパイルエラーの例 // char ch5 = 'あいうえお'; // ※エラーメッセージ // 文字定数が無効です // ※コンパイルエラーの例ここまで // 普通に文字列リテラルを使用しましょう。 // 空文字もコンパイルエラーになります。 // ※コンパイルエラーの例 // char ch5 = ''; // ※エラーメッセージ // 文字定数が無効です // ※コンパイルエラーの例ここまで // 普通に文字列リテラルを使用しましょう。 } }