Contents
【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 にまとめてあります