.NET TIPS

文字列に特定の文字列が含まれているかを調べるには?(Contains編)[2.0のみ、C#、VB]

デジタルアドバンテージ 遠藤 孝信
2006/02/17

 「TIPS:文字列に特定の文字列が含まれているかを調べるには?」で解説しているように、文字列に文字列が含まれているかどうかを調べるには、ある文字列内での部分文字列の位置を調べるためのStringクラス(System名前空間)のIndexOfメソッドを利用するのが一般的だった。

 しかし.NET Framework 2.0のStringクラスには、文字列が含まれているかどうかを調べるための専用のメソッドであるContainsメソッドが新しく追加されている。

 Containsメソッドは、含まれているかどうかを調べる文字列をパラメータに指定し、文字列のインスタンスに対して呼び出す。戻り値はその有無を示すbool値(VBではBoolean値)となる。以下にそのサンプル・プログラムを示す。

// contains.cs

using System;

public class StringContains {
  static void Main() {
    string str = "ろうにゃくなんにょ";

    Console.WriteLine(str.Contains("にゃく")); // 出力:True
    Console.WriteLine(str.Contains("にゃん")); // 出力:False
    Console.WriteLine(str.Contains(""));       // 出力:True

    Console.WriteLine(str.IndexOf(""));        // 出力:0
  }
}

// コンパイル方法:csc contains.cs
Containsメソッドを使用したC#のサンプル・プログラム(contains.cs)

' contains.vb

Imports System

Class StringContains
  Shared Sub Main()
    Dim str As String = "ろうにゃくなんにょ"

    Console.WriteLine(Str.Contains("にゃく")) ' 出力:True
    Console.WriteLine(Str.Contains("にゃん")) ' 出力:False
    Console.WriteLine(Str.Contains(""))       ' 出力:True

    Console.WriteLine(Str.IndexOf(""))        ' 出力:0
  End Sub
End Class

' コンパイル方法:vbc contains.vb
Containsメソッドを使用したVBのサンプル・プログラム(contains.vb)

 なお、パラメータに空文字列("")を指定した場合には、戻り値は常にtrueとなる。空の文字列はどのような文字列にも含まれるということである。これはIndexOfメソッドで空文字列の位置が常に0となるのと同様に、使用する際には注意が必要だ。

 Containsメソッドは、内部的にはIndexOfメソッドを呼び出しているだけのようだが、もはや

if (str.IndexOf(……) >= 0) {
  ……

のような条件式を書く必要がなくなるため、コードはすっきりし、その意味も明確になる。End of Article

利用可能バージョン:.NET Framework 2.0のみ
カテゴリ:クラス・ライブラリ 処理対象:文字列
使用ライブラリ:Stringクラス(System名前空間)
関連TIPS:文字列に特定の文字列が含まれているかを調べるには?

この記事と関連性の高い別の.NET TIPS
文字列に特定の文字列が含まれているかを調べるには?
[ASP.NET]DataGridコントロールで特定の行や文字を強調するには?
文字列から特定の文字列を取り除くには?
文字と文字列を変換するには?
パス文字列からファイル名部分を取り出すには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」

@IT Special

- PR -

TechTargetジャパン

Insider.NET フォーラム 新着記事
  • Visual Studio 2017が目指す世界とは? (2017/3/24)
     Visual Studio 2017はもはやWindowsアプリ開発者のためだけのものではない。どんなアプリを開発できるのかを見てみよう
  • foreachループで現在の繰り返し回数を使うには? (2017/3/23)
     LINQのSelect拡張メソッドを使用して、foreachループの中で現在が何回目の繰り返しなのか、そのインデックスを得る方法を紹介する(C# 7/VB 15対応)
  • Listの要素を並べ替えるには? (2017/3/22)
     LINQのOrderBy/ThenByなどの拡張メソッドとListクラスのSortメソッドを利用して、Listの要素を並べ替える方法を解説する
  • .NET Portability Analyzer (2017/3/21)
     .NET Portability Analyzerは、さまざまなプラットフォームをまたいだ.NETプログラムの移植性をチェックするためのツール
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る

ホワイトペーパーTechTargetジャパン

注目のテーマ

Insider.NET 記事ランキング

本日 月間
ソリューションFLASH