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の発生を低減できるかと思いますので

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

スポンサーリンク
在宅最高思想のエンジニア