.NET TIPS

文字列に特定の文字列が含まれているかを調べるには?

デジタルアドバンテージ
2004/02/27

 ある文字列の部分文字列として特定の文字列が含まれているかどうかを調べるには、Stringクラス(System名前空間)のIndexOfメソッドを用いればよい。

 IndexOfメソッドは本来、ある文字列において、パラメータで指定した検索文字列が最初に見つかった位置を得るためのものだ。もし検索文字列が見つからなかった場合には、戻り値は-1となる。よって、IndexOfメソッドの戻り値が0以上かどうかをチェックすれば、文字列が含まれているかどうかを調べることができる。

 次に示すサンプル・プログラムでは、文字列が含まれているかどうかを調べる機能をHasStringメソッドとしてまとめている。

// hasstring.cs

using System;

public class HasStringSample {

  static bool HasString(string target, string word) {
    if (word == "")
      return false;
    if (target.IndexOf(word) >= 0) {
      return true;
    } else {
      return false;
    }
  }

  static void Main() {
    string str = "ろうにゃくなんにょ";
    Console.WriteLine(HasString(str, "にゃく")); // 出力:True
    Console.WriteLine(HasString(str, "にゃん")); // 出力:False
    Console.WriteLine(HasString(str, ""));       // 出力:False
  }
}

// コンパイル方法:csc hasstring.cs
文字列に特定の文字列が含まれているかを調べるC#のサンプル・プログラム(hasstring.cs)
 
' hasstring.vb

Imports System

Class HashStringSample
  Shared Function HasString(ByVal target As String, ByVal word As String) As Boolean
    If word = "" Then
      Return False
    End If
    If target.IndexOf(word) >= 0 Then
      Return True
    Else
      Return False
    End If
  End Function

  Shared Sub Main()
    Dim str As String = "ろうにゃくなんにょ"
    Console.WriteLine(HasString(str, "にゃく")) ' 出力:True
    Console.WriteLine(HasString(str, "にゃん")) ' 出力:False
    Console.WriteLine(HasString(str, ""))       ' 出力:False
  End Sub
End Class

' コンパイル方法:vbc hasstring.vb
文字列に特定の文字列が含まれているかを調べるVB.NETのサンプル・プログラム(hasstring.vb)

 1つ注意が必要な点は、IndexOfメソッドはパラメータに空文字列("")を指定した場合には0を返すことだ(これは文字列が検索文字列で始まっている場合と区別がつかない)。上記のサンプル・プログラムでは、検索文字列が空文字列の場合には「含まれていない」と判断するようにしている。End of Article

カテゴリ:クラス・ライブラリ 処理対象:文字列
使用ライブラリ:Stringクラス(System名前空間)
 
この記事と関連性の高い別の.NET TIPS
文字列に特定の文字列が含まれているかを調べるには?(Contains編)
文字と文字列を変換するには?
特定の文字列で始まるか/終わるかを判定するには?
文字列の長さを取得するには?
文字列から特定の文字列を取り除くには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」

TechTargetジャパン

Insider.NET フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

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

@IT Sepcial
ソリューションFLASH