スポンサーリンク
Java

【Java】equalsやlength()を使って文字列を調査

Java

文字列を調査する

数値の判定には演算子でできましたが、

Javaで文字列同士を判定するとなると演算子ではできません。

そこで登場するのが以下のメソッドです。

メソッド説明
public boolean equlas(Object o)大文字、小文字を区別して比較
public boolean equlasIgnoreCase(String s)大文字、小文字を区別せずに比較
public int length()文字数を調べる
public boolean isEmpty()空文字か調べる

サンプルコード equalsメソッド

大文字、小文字を区別して比較を行います。

戻り値はbooleanで、一致の場合true。

不一致の場合falseが返却されます。

public class Main {
    public static void main (String[] args) {
        String str1 = "Java";
        String str2 = "java";

        if (str1.equals(str2)) {
            System.out.println(str1 + "と" + str2 + "は完全一致");

        } else if (str1.equlas(str1)) {
            System.out.println(str1 + "と" + str1 + "は完全一致");
        }
    }
}
実行結果
JavaとJavaは完全一致

サンプルコード equlasIgnoreCaseメソッド

大文字、小文字は区別することなく比較を行います。

戻り値は一致の場合true、

不一致の場合falseが返却されます。

public class Main {
    public static void main (String[] args) {
        String str1 = "Java";
        String str2 = "java";

        // 大文字、小文字を区別せずに判定
        if (str1.equalsIgnoreCase(str2)) {
            System.out.println(str1 + "と" + str2 + "は区別しなければ同じ");
        }
    }
}
実行結果
Javaとjavaは区別しなければ同じ

サンプルコード lengthメソッド

文字数をint型で取得します。

調べたい文字列.length()

文字列に使って文字数を知りたい場合にはlengthの後ろにカッコが必要です。

配列の長さを知りたいときのlengthは後ろのカッコが不要です。

public class Main {
    public static void main (String[] args) {
        String str1 = "Java";

        // 文字数を取得
        int len = str1.length();
        System.out.println(str1 + "の文字数は" + len);

        // 空文字の判定
        if (str1.isEmpty()) {
            System.out.println("変数str1は空文字です。");
        }
    }
}
実行結果
Javaの文字数は4

サンプルコード isEmptyメソッド

対象の文字列が空文字か判定を行います。

調べたい文字列.isEmpty()

戻り値は中身が空の場合、true

空ではない場合、falseが

返却されます。

英語でEmptyの意味が「空(カラ)」なので言葉のまんまですね。

public class Main {
    public static void main (String[] args) {
        String str1 = "Java";

        // 空文字の判定
        if (str1.isEmpty()) {
            System.out.println("変数str1は空文字です。");
        } else {
            System.out.println("変数str1はカラではありません。");
    }
}
実行結果
変数str1はカラではありません。

注意点

当記事で紹介したメソッドですが、

変数.equals(str)
変数.equlasIgnoreCase(str)
変数.length()
変数.isEmpty()

どれも文字列に対してメソッドを呼び出していますが

もし、文字列がNullだった場合

「NullPointerException」が発生するので注意しましょう。

少しでも発生確率を抑える記載方法としては

判定を行う文字列が決まっている場合

"文字列".equals(str)
"文字列".equlasIgnoreCase(str)
"文字列".length()
"文字列".isEmpty()

このように記載することで

exceptionの発生を低減できるかと思いますので

必要に応じてこちらも活用してみて下さい。