ある文字列の部分文字列として特定の文字列が含まれているかどうかを調べるには、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
' 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
1つ注意が必要な点は、IndexOfメソッドはパラメータに空文字列("")を指定した場合には0を返すことだ(これは文字列が検索文字列で始まっている場合と区別がつかない)。上記のサンプル・プログラムでは、検索文字列が空文字列の場合には「含まれていない」と判断するようにしている。
カテゴリ:クラス・ライブラリ 処理対象:文字列
使用ライブラリ:Stringクラス(System名前空間)
Copyright© Digital Advantage Corp. All Rights Reserved.