Javaに限らずだが、プログラムでは文字列を使う場面が多量にある。
このページではJavaでの文字列の扱い方をご紹介した。
目次
Javaの文字列
Javaは画面に表示したり、メールに含まれたりする文字データを扱うことができる。これらの文字データを変数に保存するだけでなく、指定した文字をプログラムで扱うことができるよう文字と文字列という書き方が準備されている。
まず、その書き方を見てみよう。
リテラル
リテラルと言うのは、データの表記の仕方、つまり書き方のことである。Javaでは、ひとつの文字(character)と、いくつかの文字が集まった文字列(String)の書き方を分けている。
文字リテラルを使った文字の書き方の基本は簡単だ。一文字を「'」(シングルコーテーション)で囲む。
'一文字'
文字列リテラルを使った文字の書き方の基本も簡単だ。文字の並びを「"」(ダブルルコーテーション)で囲む。
"文字の並び"
文字コードによる書き方
Javaは、文字をUTF-16と呼ばれる文字コードによって扱っている。プログラマは文字そのものを書いたほうが分かりやすいが、文字コードで直接書くこともできる。
文字リテラルの書き方はこうだ。「\u」に続いてUTF-16の文字コードを書く。それを、「'」で囲む。
'\uUTF-16文字コード'
文字列リテラルの書き方はこうだ。「\u」に続いてUTF-16の文字コードを書く。これを文字数分繰り返す。それを、「"」で囲む。
"\uUTF-16文字コード \uUTF-16文字コード ・・・"
文字リテラルのサンプルプログラム
このサンプルプログラムは、ひとつの文字をコンソールに表示する。この時、文字リテラルを用いて変数に文字を代入する。
1 2 3 4 5 6 7 8 9 10 11 12 |
class PrintCharacter { public static void main(String[] args) { char literalACharacter = 'A';//[1] char literalAUtf16Code = '\u0041';//[2] char literalAACharacter = 'あ';//[3] char literalAAUtf16Code = '\u3042';//[4] System.out.println("[5] 半角英数字 = " + literalACharacter); System.out.println("[6] 半角英数字(文字コード) = " + literalAUtf16Code); System.out.println("[7] 全角文字 = " + literalAACharacter); System.out.println("[8] 全角文字(文字コード) = " + literalAAUtf16Code); } } |
実行結果
1 2 3 4 |
[5] 半角英数字 = A [6] 半角英数字(文字コード) = A [7] 全角文字 = あ [8] 全角文字(文字コード) = あ |
サンプルプログラムの説明
それでは簡単にプログラムの解説をしてゆこう。
- [1] char型変数literalACharacterの宣言をし、「A」を代入する。
- [2] char型変数literalAUtf16Codeの宣言をし、「\u0041」を代入する。
- [3] char型変数literalAACharacterの宣言をし、「あ」を代入する。
- [4] char型変数literalAAUtf16Codeの宣言をし、「\u3042」を代入する。
- [5] literalACharacterを表示する。
- [6] literalAUtf16Codeを表示する。
- [7] literalAACharacterを表示する。
- [8] literalAAUtf16Codeを表示する。
文字列リテラルのサンプルプログラム
このサンプルプログラムは、文字列をコンソールに表示する。この時、文字列リテラルを用いて変数に文字を代入する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
public class PrintString { public static void main(String[] args) { String literalABCString = "ABC";//[1] String literalABCUtf16Code = "\u0041\u0042\u0043";//[2] String literalAIUString = "あいう";//[3] String literalAIUUtf16Code = "\u3042\u3044\u3046";//[4] System.out.println("[5] 半角英数文字列 = " + literalABCString); System.out.println("[6] 半角英数文字列(文字コード) = " + literalABCUtf16Code); System.out.println("[7] 全角文字列 = " + literalAIUString); System.out.println("[8] 全角文字列(文字コード) = " + literalAIUUtf16Code); String concatenatedString = literalABCString + literalAIUString;//[9] System.out.println("[10] 文字列の結合 = " + concatenatedString); } } |
実行結果
1 2 3 4 5 |
[5] 半角英数文字列 = ABC [6] 半角英数文字列(文字コード) = ABC [7] 全角文字列 = あいう [8] 全角文字列(文字コード) = あいう [10] 文字列の結合 = ABCあいう |
サンプルプログラムの説明
それでは簡単にプログラムの解説をしてゆこう。
- [1] Stringクラスの参照変数literalABCStringの宣言をし、「ABC」を代入する。
- [2] Stringクラスの参照変数literalABCUtf16Codeの宣言をし、「\u0041\u0042\u0043」を代入する。
- [3] Stringクラスの参照変数literalAIUStringの宣言をし、「あいう」を代入する。
- [4] Stringクラスの参照変数literalAIUUtf16Codeの宣言をし、「\u3042\u3044\u3046」を代入する。
- [5] literalABCStringを表示する。
- [6] literalABCUtf16Codeを表示する。
- [7] literalAIUStringを表示する。
- [8] literalAIUUtf16Codeを表示する。
- [9] literalABCStringとliteralAIUStringをconcatenatedStringに結合する。
- [10] 文字列結合の結果concatenatedStringを表示する。
もっと詳しく
下記で文字列についてより詳しい説明をしている。こちらもご参考に。
まとめ
このページではJavaの文字列についてお伝えしてきた。参考にしていただければと思う。