【Java】compareToで文字列の大きさの比較結果をbooleanやif 文で使用する

【Java】compareToで文字列の大きさの比較結果をbooleanやif 文で使用する

管理人
compareToの使い方やにつ比較結果をboolean型やif文での活用の仕方を解説します。

compareTo:文字列の大小を比較

compareTo 文字列と文字列の大きさを比較し、 2 つの文字列の値が同じならば 0 、どちらかの文字列が大きいまたは小さい場合は正の値または負の値を返します。

 具体的には以下のように実行の確認ができます。

String str1 = "ZZZ";
String str2 = "ZZZ";
String str3 = "ZZZZZ";
String str4 = "AAA";
System.out.println(str1.compareTo(str2));
System.out.println(str1.compareTo(str3));
System.out.println(str1.compareTo(str4));

// 実行結果
0
-2
25

文字列の比較について以下のように比較しております。

①文字列の長さが同じで、すべてのインデックスの文字が同じ値だった場合は 0 を返す

②文字列の長さは異なるが、短い方の文字列全体が長い文字列の先頭部分と一致している場合は 対象の文字列.length() – 引数の文字列.length() を返す

③同じインデックスの文字が異なる値があった場合は 対象の文字列.charAt(k) – 引数の文字列.charAt(k) を返す

compareToをboolean型で活用する

 compareToで文字列の大きさについて比較できますが、使用の際は等号式、不等号式を併せて活用し比較結果をint型の値でなく、boolean型として扱うことが多いです。

「compareTo」+「>= 0 」 左辺と右辺を文字列の比較し以上の場合、ture
「compareTo」+「<=  0」 左辺と右辺を文字列の比較し以下の場合、ture
「compareTo」+「>  0」 左辺と右辺を文字列の比較しより大きいの場合、ture
「compareTo」+「< 0」 左辺と右辺を文字列の比較しより小さいの場合、ture
「compareTo」+「==  0」 左辺と右辺を文字列の比較し同一の場合、ture

 以下のとおり動作が確認できます。

System.out.println("1001".compareTo("1000") >= 0);
System.out.println("1001".compareTo("1001") >= 0);
System.out.println("1001".compareTo("1002") >= 0);
System.out.println("1001".compareTo("1000") <= 0);
System.out.println("1001".compareTo("1001") <= 0);
System.out.println("1001".compareTo("1002") <= 0);
System.out.println("1001".compareTo("1000") > 0);
System.out.println("1001".compareTo("1001") > 0);
System.out.println("1001".compareTo("1002") > 0);
System.out.println("1001".compareTo("1000") < 0);
System.out.println("1001".compareTo("1001") < 0);
System.out.println("1001".compareTo("1002") < 0);
System.out.println("1001".compareTo("1000") == 0);
System.out.println("1001".compareTo("1001") == 0);
System.out.println("1001".compareTo("1002") == 0);

// 実行結果
true
true
false
false
true
true
true
false
false
false
false
true
false
true
false

 boolean型として値を返っているため、if文で使用できます。

if ("1001".compareTo("1000") >= 0) {
    System.out.println("1001は1000以上です");
}

// 実行結果
1001は1000以上です

管理人
Javaの記事の一覧はJava にまとめてあります

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

PAGE TOP