本サイトはプロモーション(広告)が含まれています。

【Java】startsWith ・endsWith で大文字小文字区別せずに判定する方法

【Java】startsWith ・endsWith で大文字小文字区別せずに判定する方法

 Javaで文字列が調べたい文字列で始まっているかどうか判定するメソッドとして、startsWithメソッド、文字列が調べたい文字列で終わっているかどうか判定するメソッドとしてendsWithメソッドがあります。

String str = "test";
System.out.println(str.startsWith("te"));
System.out.println(str.startsWith("Te"));
System.out.println(str.endsWith("st"));
System.out.println(str.endsWith("ST"));

// 実行結果
true
false
true
false

 startsWithメソッド・endsWithメソッドを利用することで、「調べたい文字列で始まっているかどうか・終わっているかどうか」を調べることができますが、大文字・小文字を区別して調べています。

 大文字・小文字を区別せずに判定するには、調査対象文字列を大文字または小文字に変換かけてあげることにより判定できます。

toUpperCase()またはtoLowerCase()にて大文字・小文字いずれかに変換後startsWith・endsWithを利用する

 toUpperCase()またはtoLowerCase()を利用することで、文字列を大文字または小文字に統一できます。

String str = "Test";
System.out.println(str.toUpperCase());
System.out.println(str.toLowerCase());

// 実行結果
TEST
test

 大文字・小文字混在の”Test”がtoUpperCase()およびtoLowerCase()を利用することでTEST、testにそれぞれ変換できることが確認できました。

String str = "Test";
System.out.println(str.toUpperCase().startsWith("TE"));
System.out.println(str);

// 実行結果
true
Test

 大文字・小文字区別せずに調査する場合は一度変換処理をかけてやればよいです。

 String型は不変のオブジェクトのため、str = str.toUpperCase();などで値を再代入しない限り値の変更は反映されないため、元の文字列は保持できます。

Javaの記事一覧へ

PAGE TOP