Javaとクラスライブラリ Stringクラス(5-2)

記事上広告

Javaプログラムの中で頻繁に利用されるString(文字列)の説明です。

Stringは基本データ型ではなくクラスに分類されます。

Stringクラスの概要

Stringクラスは文字列を扱うためのクラスです。基本データ型ではない為、型は頭文字が大文字になっています。

Stringはクラスとなっていますので、メソッドやフィールドといったメンバも持っています。また、文字列は頻繁に利用される為、他のクラスにはない特徴もあります。

Stringクラスはメソッド一覧は以下のURLを参照してください。
https://docs.oracle.com/javase/jp/8/docs/api/

Stringクラスの特徴

Stringクラスの特徴を箇条書きにして紹介します。

  1. java.langパッケージのクラスでimportが不要
  2. “”はString型のインスタンスとなる
  3. 2の理由から、==の代入演算での比較はインスタンスの比較となる為、文字列比較はequals()メソッドで行う
  4. Stringの文字列は定数となっており、別の文字列を扱うと別インスタンスが生成される
  5. 3の理由から文字列の変更を行う際は、「StringBuffer」や「StringBuilder」といったクラスを利用する

Stringクラスの特徴をプログラムで確認

以下のプログラムを「Number43.java」という名前でWorkフォルダ内に保存します。

保存が完了したら、コマンドプロンプトを起動し、Number43.javaをコンパイルしてみましょう。

実行例

C:\work>javac Number43.java

C:\work>java Number43 javaru
false
true
false

※実行例はコンパイルおよび実行時の例を表示しています。

Stringクラスのコンストラクタを利用する

Stringはクラスなので、コンストラクタを使ってインスタンスを生成することもできます。コンストラクタを利用して変数を作成すると、同じ文字列でも別インスタンスとして扱われます。

Stringクラスのコンストラクタを利用する String インスタンス変数名 = new String(“文字列”) ;
記述例 String str = new String(“javaru”) ;

Stringクラスのメソッドを利用する

Stringは文字列を扱うクラスの為、メソッドは文字列に関する処理を行うことができます。しかし、前述したとおりStringは文字列の編集を行うメソッドは用意されていません。

以下の表はStringクラスにおけるメソッドの一部です。ほかにもたくさんのメソッドがあるので、APIドキュメントで確認してみてください。

メソッド名 戻り値の型 引数 処理内容
equals boolean String str 自身の文字列と引数の文字列を比較してboolean型として返す。
charAt char int index 引数で指定された数値(インデックス)の文字のみをchar型の文字として返す。
indexOf int String str 引数で指定された文字列を検索し、文字列が見つかった場合は数値(インデックス)として返す。見つからなかった場合の戻り値は-1となる。
引数と同じ文字列が複数見つかった場合は、最初に見つかった数値となる。
substring String int biginIndex 引数で指定された数値から最後の文字列までを切り取って、戻り値として返す。
substring String int biginIndex, int lastIndex 第一引数の数値から第二引数の数値までの文字列を切り取って、戻り値として返す。
length int なし 文字数を返す。

Stringのメソッド サンプルプログラム

以下のプログラムを「Number44.java」という名前でWorkフォルダ内に保存します。

保存が完了したら、コマンドプロンプトを起動し、Number44.javaをコンパイルしてみましょう。※プログラムが長いため、必要に応じてコピペで確認してください

実行例

C:\work>javac Number44.java

C:\work>java Number44
[equals()メソッド] false
[charAt()メソッド] p
[indexOf()メソッド] 0
-1
[substring()メソッド] char,byte,short,int,long,float,double,booleanがあります。
char
[length()メソッド] 59

補足 substring()メソッドのインデックス

substring()メソッドのインデックスは以下のようにイメージすると分かりやすいかもしれません。

例えば、基本という部分を取得する場合は「substring(5,7)」と指定します。イメージは以下のようになります。

さらに、Javaという部分を取得する場合は「substring(0,4)」と指定します。イメージは以下のようになります。

String 復習問題

以下のプログラムはどのように表示されるか選んでください。
解答群
true
false
test
null
文字数を取得できるメソッドの名称として正しいものを選んでください。
解答群
length
size
number
indexOf
“abcdefg”という文字列(”は含めない)からdefという文字列を取得する際の記述として正しいものを選んでください。
解答群
“abcdefg”.substring(4,6)
“abcdefg”.substring(3,7)
“abcdefg”.substring(3,6)
“abcdefg”.substring(4,7)
indexOf()メソッドを利用した際、検索文字列が見つからなかった場合の戻り値として正しいものを選んでください。
解答群
0
1
-1
false
お疲れ様でした。

まとめ

  • Stringはクラス
  • 文字列比較の際はequals()メソッドを利用する
  • 文字列に関する様々なメソッドを利用できる
  • charAt()は一文字だけを取得できる
  • indexOf()で文字列検索が可能
  • substring()は文字列の一部を取得できる
  • length()は文字数が取得できる
スポンサーリンク
レクタングル