Geekroid-ギークロイド(仮)|ITエンジニアの日常をささいな情報で彩るコラム

ITエンジニアの転職

equals/equalsIgnoreCaseメソッド

文字列が等しいかを確認する – equals/equalsIgnoreCaseメソッド
public boolean equals(Object str)
public equalsIgnoreCase(String str)
obj:比較する文字列

2つの文字列が等しいかどうかを確認するには、equalsメソッドを利用します。大文字小文字を区別せずに比較したい場合には、equalsIgnoreCaseメソッドを利用することもできます。

StrEquals.java

package com.example.mynavi.string;

public class StrEquals {
  public static void main(String[] args) {
    String msg = "Hello!";
    System.out.println(msg.equals("hello!")); // 結果:false
    System.out.println(msg.equalsIgnoreCase("hello!")); // 結果:true
  }
}

文字列の比較に「==」演算子を利用してはいけません。「str1 == str2」はstr1/str2が同じオブジェクトを参照しているかをチェックするものであるからです。たとえば、以下は中の値は同じ「いろは」ですが、「==」演算子はfalseを返します。

StrEquals2.java(抜粋)

String str1 = "いろは";
String str2 = "いろ";
System.out.println(str1 == str2 + "は");	// 結果:false

ちなみに、以下のコードは例外的にtrue(等しい)となります。

StrEquals3.java(抜粋)

String str1 = "いろは";
String str2 = "いろは";
System.out.println(str1 == str2);	// 結果:true

Javaでは、文字列リテラルによって暗黙的に生成された文字列オブジェクトは、同値であれば同一であるというルールがあるからです。ただし、これは例外的な一致であり、基本的にStringオブジェクトは「==」演算子で比較しない、と覚えておきましょう。

文字列
文字列
length/codePointCountメソッド
isEmptyメソッド
charAtメソッド
indexOf/lastIndexOfメソッド
equals/equalsIgnoreCaseメソッド
regionMatchesメソッド
compareTo/compareToIgnoreCaseメソッド
trimメソッド
startsWith/endsWithメソッド
toLowerCase/toUpperCaseメソッド
substringメソッド
replaceメソッド
splitメソッド
joinメソッド
formatメソッド
appendメソッド

Geekroid-ギークロイド(仮)|ITエンジニアの日常をささいな情報で彩るコラム

ITエンジニアの転職