.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 フォーラム 新着記事
  • Microsoft Small Basic (2017/4/25)
     Microsoft Small Basicは学習を目的としてマイクロソフトが提供しているBASICの処理系。シンプルな言語仕様、習得が容易、簡潔な記述がその特徴
  • 第2回 Visual Studio 2017の基礎を知る (2017/4/21)
     開発環境Visual Studio 2017を使ったプログラミングに不可欠な知識とは? ソリューションの概念から画面構成まで基礎を説明
  • XmlSerializerでシリアライズ/デシリアライズする (2017/4/19)
     XmlSerializerクラスでシリアライズ/デシリアライズを行うと、デシリアライズに失敗することがある。その回避策を含め、XmlSerializerクラスの使い方を説明する
  • 二分探索 (2017/4/18)
     二分探索は、ソート済みのデータ列の中から特定の要素を探索するアルゴリズム。全ての要素を順に検索する線形探索よりも高速に探索を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る

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

注目のテーマ

Insider.NET 記事ランキング

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