[Dart / Flutter]文字列に指定されたパターンを含むか判定する contains()

文字列に特定のパターンやキーワードが含まれているかを簡単に確認するには、contains()メソッドを使用します。

文法・構文形式

bool str.contains(pattern, [int startIndex = 0])

  • str: 検索対象となる文字列。
  • pattern: 文字列の中で見つけたいキーワードやフレーズ。大文字・小文字は区別されます。
  • startIndex (オプション): 検索を開始する位置。省略した場合は0から検索を開始します。また負の数字は無効です。

contains()は、特定の文字列が別の文字列の中に存在するかどうかを確認するためのメソッドです。戻り値は真偽値(trueまたはfalse)となります。もし探す文字列が文字列の中に存在する場合はtrue、存在しない場合はfalseを返します。

利用場面

  • ユーザーからの入力値に特定のキーワードが含まれているかの確認。
  • テキストデータの中から特定の情報を抜き出す際の前処理として。

文字列「Dart」を含むか確認する。

先頭「I」から文字列「Dart」が含まれているか検索します。結果 trueとなります。ただし大文字・小文字を区別するため「dart」の場合は、結果 falseとなります。

String text = "I am learning Dart language.";
bool result = text.contains("Dart");
print(result); // 結果: true

文字列「dart」で検索する場合、そのままでは結果 falseとなります。大文字・小文字を区別しない場合は、正規表現を使います。caseSensitiveをfalseにすると大文字・小文字を区別しないため、結果 trueとなります。

String text = "I am learning Dart language.";
bool result = text.contains(RegExp('dart', caseSensitive: false)); 
print(result); // 結果: true

1番目「abc」以降に「a」が含まれているか確認する。

開始位置は、0番から始まります。そのため1番目は「b」となり、結果 falseとなる。

String text = "abc";
bool result = text.contains("a", 1);  // 結果: false
print(result);

メリット
  • 簡単に文字列の中に特定のパターンやキーワードが存在するかを確認できる。
  • コードが直感的で、読み手が理解しやすい。
デメリット
  • 大文字・小文字は区別されます。

contains()は、文字列の中に特定のキーワードやフレーズが存在するかを瞬時に確認するためのメソッドです。シンプルながら非常に有用で、日常的なプログラミング作業で頻繁に利用されます。