この関数は、文字列に別の文字列が「含まれている」かどうかをチェックするように特別に設計されています。これを初めて使用する場合は、「キャラクター」を見つけるためにこれを使用することになるかもしれません。しかし、それは目的を果たせません。この記事では、 java.lang.String.contains()の使用方法と実装方法、および注意して使用しない場合にどのような例外が発生する可能性があるかについて説明します。
contains() メソッドとは何ですか?
contains(String key)メソッドを使用すると、特定の文字列「key」が特定の文字列内に存在するかどうかを「検索」できます。「key」が見つかった場合は「true」を返します。それ以外の場合は「false」が返されます。
内部実装
このメソッドはjava.lang.Stringによってすでに実装されています。これを自分で実装する必要はありません。理解していただくために、簡単に説明します。
public class ContainsMethod
{
public boolean contains(CharSequence key)
{
return indexOf(key.toString()) > -1;
}
}
コードの説明
contains()メソッドは、入力パラメータとして CharSequence を受け取ります。これは後で「文字列」に変換されます。次に、この式は、indexOf(key.toString()) > -1;として計算されます。。つまり、その「キー」がいずれかのインデックス (「0」以上) で見つかった場合、「true」が返されます。キーが見つからない場合は、「false」が返されます。contains() メソッドの使用方法は?
使い方は次のとおりです。
public class ContainsMethod {
public static void main(String[] args) {
String input = "A brown fox jumped over a lazy dog.";
// check the containing strings
System.out.println("input.contains(bro) = " + input.contains("bro"));
System.out.println("input.contains(brown) = " + input.contains("brown"));
System.out.println("input.contains(Brown) = " + input.contains("Brown"));
System.out.println("input.contains(fox) = " + input.contains("fox"));
System.out.println("input.contains(xof) = " + input.contains("xof"));
System.out.println("input.contains(dog) = " + input.contains("dog"));
System.out.println("input.contains(lazyy) = " + input.contains("lazyy"));
System.out.println("input.contains(jumping) = " + input.contains("jumping"));
}
}
出力
input.contains(bro) = true input.contains(brown) = true input.contains(Brown) = false // 大文字と小文字が区別されるため false input.contains(fox) = true input.contains(xof) = false // false順序は同じである必要があるため input.contains(dog) = true input.contains(lazyy) = false // 部分文字列全体が見つからないため false input.contains(jumping) = false
コードの説明
このメソッドでは入力パラメータの大文字と小文字が区別されることに注意してください。したがって、上記のスニペットでは、「brown」を検索するとtrueが返されるのに対し、「Brown」の場合はfalseが返されることがわかります。また、文字の順序が同じである必要があるため、「fox」が見つかった場合はtrueが返され、「xof」または「oxf」が見つかった場合はfalseが返されます。最後に、「jump」または「jumped」が見つかった場合は、パラメータ全体が「input 」文字列に存在するため、 trueが返されます。一方、「ジャンプ」をチェックすると、キー全体 (「ジャンプ」) が見つからないためfalseが返されます。例外の処理
パラメータ文字列を具体的な値で初期化するのを忘れた場合、 java.lang.String.contains()メソッドでは Null Pointer Exception が発生します。
public class ContainsMethod {
public static void main(String[] args) {
String input = "Here is a test string.";
String test = null;
// check what happens if you look for a null string
System.out.println("input.contains(test) = " + input.contains(test));
}
}
出力
Exception in thread "main" java.lang.NullPointerException
at java.lang.String.contains(String.java:2133)
at ContainsMethod.main(ContainsMethod.java:8)
GO TO FULL VERSION