C#でプログラミングをしていると、ある文字列の中に特定の文字列が含まれているかどうかを確認したい場面がよくあります。例えば、ユーザーの入力した文字列に特定のキーワードが含まれているかチェックしたり、長い文章の中から特定の単語を探したりする際に使用します。この記事では、C#で文字列に特定の文字列が含まれているかを調べる方法について、初心者の方にも分かりやすく解説します。
String.Contains メソッドを使用する方法
C#で文字列に特定の文字列が含まれているかを調べる最も簡単な方法は、String.Contains
メソッドを使用することです。このメソッドは、指定した文字列が含まれている場合は true
、含まれていない場合は false
を返します。
以下に、基本的な使用例を示します:
using System;
class Program
{
static void Main()
{
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
大文字小文字を区別しない検索
String.Contains
メソッドは、デフォルトでは大文字と小文字を区別します。大文字小文字を区別せずに検索したい場合は、StringComparison.OrdinalIgnoreCase
を使用します。
using System;
class Program
{
static void Main()
{
string text = "C#プログラミングは楽しいです。";
bool containsCSharp = text.Contains("c#", StringComparison.OrdinalIgnoreCase);
Console.WriteLine($"「c#」が含まれているか(大文字小文字を区別しない): {containsCSharp}");
}
}
出力:
「c#」が含まれているか(大文字小文字を区別しない): True
IndexOf メソッドを使用する方法
String.IndexOf
メソッドを使用して、特定の文字列が含まれているかを調べることもできます。このメソッドは、指定した文字列が見つかった位置のインデックスを返します。見つからなかった場合は -1
を返します。
using System;
class Program
{
static void Main()
{
string text = "C#プログラミングは楽しいです。";
int indexOfCSharp = text.IndexOf("C#");
int indexOfJava = text.IndexOf("Java");
Console.WriteLine($"「C#」の位置: {indexOfCSharp}");
Console.WriteLine($"「Java」の位置: {indexOfJava}");
// 含まれているかどうかの判定
Console.WriteLine($"「C#」が含まれているか: {indexOfCSharp != -1}");
Console.WriteLine($"「Java」が含まれているか: {indexOfJava != -1}");
}
}
出力:
「C#」の位置: 0
「Java」の位置: -1
「C#」が含まれているか: True
「Java」が含まれているか: False
活用例:ユーザー入力の検証
実際のアプリケーションでの使用例として、ユーザーの入力した文字列に特定のキーワードが含まれているかをチェックする例を見てみましょう。
using System;
class Program
{
static void Main()
{
Console.Write("好きなプログラミング言語を入力してください: ");
string userInput = Console.ReadLine();
string[] popularLanguages = { "C#", "Java", "Python", "JavaScript" };
bool isPopular = false;
foreach (string language in popularLanguages)
{
if (userInput.Contains(language, StringComparison.OrdinalIgnoreCase))
{
isPopular = true;
Console.WriteLine($"{language}は人気の言語ですね!");
break;
}
}
if (!isPopular)
{
Console.WriteLine("入力された言語は、リストにない珍しい言語かもしれません。");
}
}
}
この例では、ユーザーの入力に人気のプログラミング言語が含まれているかをチェックし、適切なメッセージを表示します。
まとめ
C#で文字列に特定の文字列が含まれているかを調べる方法として、主に String.Contains
メソッドと String.IndexOf
メソッドを紹介しました。これらのメソッドを使いこなすことで、文字列の操作や検証が効率的に行えるようになります。
String.Contains
は、含まれているかどうかのシンプルな判定に適しています。String.IndexOf
は、位置情報も必要な場合に便利です。- 大文字小文字を区別しない検索には、
StringComparison.OrdinalIgnoreCase
を使用します。
これらの基本を押さえておけば、C#でのプログラミングで文字列操作の多くのシーンに対応できるでしょう。実際のプロジェクトで積極的に活用してみてください。
コメント