【Java】
startsWith()・endsWith()の仕様と使い方
任意の文字で始まるか・終わるかを判定する
投稿日 2020/10/22 更新日 2021/01/20
こんにちは。当サイトの管理者「元木皇天」です。
startsWith()メソッドやendsWith()メソッドを使用すれば、その文字列が引数で指定した文字で 始まっているのか、終わっているのかを判定することができます。 今回はこの2つのメソッドについて解説していきます。
環境:Java11
startsWith()の仕様
JavaのStringクラスはstartsWith()というメソッドを持っています。このメソッドを使うことで
任意の文字列が、引数で渡した文字列で始まるかどうかを判断することができます。
引数には「String型」を使用します。戻り値は「boolean型」です。
引数に指定した文字列ではじまれば「true」、そうでなければ「false」を返します。
参考文献:スッキリわかるJava入門 実践編 第3版 (スッキリわかるシリーズ)
Java公式API
また、Stringクラスは引数を2つ持つstartsWith()メソッドも持っています。 こちらは、第一引数に「String型」、第二引数に「int型」を指定します。 第一引数は、その文字で始まるかどうかを判定するもので最初に説明したものと同じ役割です。 そこに第二引数を追加することで、その数字分、文字列の先頭から文字を数えてそこから第一引数で渡した文字で始まるのかを判定します。
詳しくはこの後の使い方の説明で確認してください。
endsWith()の仕様
StringクラスはendsWith()メソッドも持っています。
このメソッドは、任意の文字列が引数で渡した文字列で終わるかどうかを判断することができます。
先ほどのstartsWith()の反対バージョンですね。
引数には「String型」を使用します。戻り値は「boolean型」です。
引数に指定した文字列で終われば「true」、そうでなければ「false」を返します。
Java公式API
ちなみに、第二引数を持つendsWith()はありません。
startsWith(), endsWith()の使い方
それでは、それぞれのメソッドの使い方を見ていきましょう。
以下はstartsWith()メソッドの使い方の例とその出力結果です。
String str = "ABCDEFG"; //例1 boolean b1 = str.startsWith("A"); System.out.println(b1); //出力結果:true //例2 boolean b2 = str.startsWith("B"); System.out.println(b2); //出力結果:false //例3 boolean b3 = str.startsWith("ABC"); System.out.println(b3); //出力結果:true //例4 boolean b4 = str.startsWith("B", 1); System.out.println(b4); //出力結果:true
例1
文字列「str」は「A」から始まっているのでtrueを返します。
例2
「str」は「B」から始まっていないのでfalseを返します。
例3
「str」は「ABC」で始まっているのでtrueを返します。例3のように 1文字ではなく、複数文字でも判定することができます。
例4
「str」の2文字目は「B」で始まるのでtrueを返します。 配列などと同様に、1文字目は0、2文字目は1というように 判定したい文字の場所 -1 の数で指定します。
次にendsWith()メソッドの使い方の例とその出力結果です。
String str = "ABCDEFG"; //例1 boolean b1 = str.endsWith("G"); System.out.println(b1); //出力結果:true //例2 boolean b2 = str.endsWith("C"); System.out.println(b2); //出力結果:false //例3 boolean b3 = str.endsWith("EFG"); System.out.println(b3); //出力結果:true
例1
文字列「str」は「G」で終わるのでtrueを返します。
例2
「str」は「C」で終わっていないのでfalseを返します。
例3
「str」は「EFG」で終わっているのでtrueを返します。startsWith()と同様に 1文字ではなく、複数文字でも判定することができます。