C#でプログラミングをしていると、文字列の中から特定の文字や部分文字列を探す必要がよく出てきます。例えば、ユーザーの入力した文字列にキーワードが含まれているかチェックしたり、大量のテキストデータから必要な情報を抽出したりする場面があります。この記事では、C#で利用できる主な文字列検索方法をまとめて解説します。初心者の方でも理解しやすいように、具体的なコード例を交えて説明していきます。
目次
1. Contains メソッド
Contains
メソッドは、文字列に特定の部分文字列が含まれているかどうかを確認するための最も簡単な方法です。
string text = "C#は強力なプログラミング言語です。";
bool containsCSharp = text.Contains("C#");
bool containsJava = text.Contains("Java");
Console.WriteLine($"「C#」が含まれているか: {containsCSharp}");
Console.WriteLine($"「Java」が含まれているか: {containsJava}");
出力:
「C#」が含まれているか: True
「Java」が含まれているか: False
2. IndexOf メソッド
IndexOf
メソッドは、指定した文字や部分文字列が最初に出現する位置(インデックス)を返します。見つからない場合は -1 を返します。
string text = "C#でプログラミングを学ぶ";
int indexOfCSharp = text.IndexOf("C#");
int indexOfJava = text.IndexOf("Java");
Console.WriteLine($"「C#」の位置: {indexOfCSharp}");
Console.WriteLine($"「Java」の位置: {indexOfJava}");
出力:
「C#」の位置: 0
「Java」の位置: -1
3. StartsWith と EndsWith メソッド
StartsWith
メソッドは文字列が指定した部分文字列で始まるかどうかを、EndsWith
メソッドは終わるかどうかを確認します。
string email = "user@example.com";
bool startsWithUser = email.StartsWith("user");
bool endsWithCom = email.EndsWith(".com");
Console.WriteLine($"「user」で始まるか: {startsWithUser}");
Console.WriteLine($"「.com」で終わるか: {endsWithCom}");
出力:
「user」で始まるか: True
「.com」で終わるか: True
4. LastIndexOf メソッド
LastIndexOf
メソッドは、指定した文字や部分文字列が最後に出現する位置を返します。
string text = "C#は素晴らしい言語です。C#を学びましょう。";
int lastIndexOfCSharp = text.LastIndexOf("C#");
Console.WriteLine($"「C#」の最後の位置: {lastIndexOfCSharp}");
出力:
「C#」の最後の位置: 17
5. 正規表現を使用した検索
より複雑な検索パターンには、System.Text.RegularExpressions
名前空間の Regex
クラスを使用します。
using System;
using System.Text.RegularExpressions;
string text = "私の電話番号は090-1234-5678です。";
string pattern = @"\d{3}-\d{4}-\d{4}";
Match match = Regex.Match(text, pattern);
if (match.Success)
{
Console.WriteLine($"電話番号が見つかりました: {match.Value}");
}
else
{
Console.WriteLine("電話番号が見つかりませんでした。");
}
出力:
電話番号が見つかりました: 090-1234-5678
まとめ
C#には文字列を検索するための様々なメソッドが用意されています。
Contains
: 部分文字列の存在確認IndexOf
: 最初の出現位置の検索StartsWith
/EndsWith
: 文字列の先頭/末尾の確認LastIndexOf
: 最後の出現位置の検索- 正規表現: 複雑な検索パターンに対応
これらのメソッドを適切に使い分けることで、効率的な文字列操作が可能になります。初心者の方は、まず Contains
や IndexOf
から始めて、徐々に他のメソッドや正規表現の使用に挑戦してみるとよいでしょう。実際のプロジェクトで活用することで、C#プログラミングのスキルアップにつながります。
コメント