JavaのStringを使うと便利と聞いたけれど、
・Stringがどのような機能を果たすのか知りたい…。
・Stringのクラスの使い方が分からない…。
こんな悩みはないでしょうか?そこでこの記事では、
・JavaのStringクラスの概要
・Stringクラスの使い方や注意点
について解説します。
JavaのStringクラスとは?charとの違い
JavaのStringクラスは、コード内のダブルクオーテーション(”)で囲まれた部分を機械語に変換せず、そのまま文字列として扱うためのクラスです。
Javaには、文字を扱うための仕組みとして「char型」というデータ型も用意されています。Stringクラスとchar型の違いは扱える文字数と記述方法です。Stringクラスの変数では0文字以上の文字列が扱えます。一方、char型の変数に格納できるデータは1文字のみです。char型の変数では、格納する文字をシングルクオーテーション(‘)で囲みます。
種類 | 扱える文字数 | 使う記号 | 格納できるデータの具体例 |
Stringクラス | 0文字以上 | ダブルクオーテーション(”) | “ありがとう”、”thanks”など |
char型 | 1文字 | シングルクオーテーション(’) | ‘あ’、’a’など |
\文字より動画で学びたいあなたへ/
Udemyで講座を探す >Stringクラス|6つの基本的な使い方
Stringクラスには、文字列を変数として定義する機能だけでなく、定義した文字列を操作するための様々な機能が備わっています。Stringクラスの基本的な使い方は次の通りです。
文字列の定義をする[String]
文字列は次のような記述方法で定義できます。
1 |
String 変数名 = "文字リテラル" |
文字リテラルとは、ソースコードに直接書く文字列のことです。例えばude01という変数に「ユーデミー」、ude02という変数に「Udemy」という文字列を定義したい場合、次のように記述します。
1 2 |
String ude01 = "ユーデミー"; String ude02 = "Udemy"; |
Stringはクラス型のため、1文字目のSは大文字にする必要があります。
文字数・バイト数をカウントする[length]
Stringクラスの変数について、格納されている文字列の文字数をカウントして表示するための記述方法は次の通りです。
1 |
System.out.println(変数名.length()); |
例えば、「ユーデミー」という文字列が格納されているude01という変数の文字数をカウントしたい場合、次のように記述します。
1 |
System.out.println(ude01.length()); |
この場合、コードを実行した際に出力される数値は「5」です。
文字数をカウントする際の注意点として、改行コードも文字数に含まれる点が挙げられます。例えば、Windowsの改行コード「\r\n」が含まれていた場合、rとnがそれぞれ1文字分ずつカウントされます。
コンピュータにおける情報量を表す単位であるバイト数をカウントする記述方法は次の通りです。
1 |
System.out.println(変数名.getBytes().length); |
例えば、「ユーデミー」という文字列が格納されているude01という変数のバイト数をカウントしたい場合、次のように記述します。
1 |
System.out.println(ude01.getBytes().length); |
このコードを実行した際に出力される数値は「15」です。
文字列が一致しているか比較する[equals]
2つの変数に格納された文字列が一致しているかどうか比較するコードは次のように記述します。
1 |
変数名1.equals(変数名2) |
equalsの前の変数が比較元、後ろの()内の変数が比較対象です。例えば、ude01とude02の文字列が一致しているかの結果を出力したい場合、if文を用いて次のようなコードを記述します。
1 2 3 4 5 6 7 |
if (ude01.equals(ude02)){ System.out.println("同一の文字列です"); } else{ System.out.println("同一の文字列ではありません"); } |
ude01とude02の文字列は異なるため、「同一の文字列ではありません」という結果が出力されます。
文字列を分割する[split]
ある文字列を分割して別の配列に格納したい時は、次のように記述します。
1 |
String[] 変数名2 = 変数名1.split(”区切り文字", 分割後の配列数) |
分割後の配列数に0を指定しておくと、区切り文字で分けられている数だけ自動で分割することが可能です。例えば、「犬,猫,鳥」という文字列が格納されたude03という変数を分割し、animalsという配列に格納した上で結果を出力するコードは次の通りです。
1 2 3 4 5 6 |
String ude03 = "犬,猫,鳥"; String[] animals = ude03.split(",", 0); for (String animal : animals) { System.out.println(animal); } |
元の文字列が区切り文字「,」で分けられ、次のような結果が出力されます。
1 2 3 4 |
犬 猫 鳥 |
文字列を結合する[+]
複数の変数に格納されている文字列を結合し、別の変数として定義するコードの書き方は次の通りです。
1 |
String 変数名3 = 変数名1 + 変数名2 |
例えば、次のようなコードを実行すると、「Udemy」が格納されたude02と「ユーデミー」が格納されたude01を結合できます。
1 2 3 |
String ude04 =ude02 + ude01; System.out.println(ude04); |
このコードの出力結果は次の通りです。
Udemyユーデミー
文字列の前後の空白を削除する[trim]
文字列に前後に含まれている空白を削除したい時は、次のように記述します。
1 |
String 変数名2 =変数名1.trim() |
例えば、「 yu- demi 」という文字列について、前後の空白を削除するコードは次の通りです。
1 2 3 4 |
String ude05 = " yu- demi "; String ude06 = ude05.trim(); System.out.println(ude06); |
このコードを実行すると、前後の空白が削除された「yu- demi」という文字列が出力されます。
Stringクラスのtrimで削除できる空白は、半角スペースとタブ、改行のみです。全角スペースは削除することができません。
Stringクラスを使うときの注意点
Stringクラスを使うときは、空白の扱いや文字列の変更方法に注意が必要です。ここでは、Stringクラスの使用時に注意すべきポイントを解説します。
Javaではnullと””が別物として扱われる
Javaのコード内では、値が存在しない状態を表すnullと、長さが0の文字列””は異なるデータとして扱われます。データの登録や取り出しを行う際にエラーが発生しないようにするため、nullと””の区別に注意してコーディングを行いましょう。
文字列を書き換えることはできない
Stringクラスで定義した変数は、格納した文字列を書き換えることができません。文字列を変更したい場合は、新たに別のStringクラスの変数を用意して、分割や結合による書き換えを行う必要があります。
まとめ
JavaのStringクラスを使うと、複数の文字からなる文字列を変数として定義し、様々な操作を行うことが可能です。同じ文字を扱うデータ型であるchar型では、1文字しか扱うことができません。複数の文字列を比較したり、分割・結合したりする場合には、Stringクラスを用いましょう。
Javaについてより詳しく学びたい方は、下記の講座がおすすめです。
【Java-メソッド】サクッと学ぶ Java『メソッド』2時間【速習】コース ~効率的に学ぶベストプラクティス~
『新たにJava学習を始めたかた』『転職のためのプログラミング習得したいかた』『新入社員が業務で使うJavaの基礎を学びたいかた』のため、初心者が最もつまずきやすい『メソッド』を「コーディング例」を見ながら学べる講座
\無料でプレビューをチェック!/
講座を見てみるJava stringを習得して、Webサービスやアプリ開発の効率化を目指しましょう!
最新情報・キャンペーン情報発信中