はじめに
プログラミングにおいて、文字列操作は非常に重要なスキルです。C#では、文字列操作のための豊富なメソッドと機能が用意されており、これらを理解し使いこなすことで、効率的なプログラミングが可能になります。本記事では、C#の文字列操作に関する基礎的な内容を網羅的に解説し、実際のコード例を通じてその使用方法を学びます。
文字列の基本操作
文字列の宣言と初期化
文字列は、string キーワードを使用して宣言し、初期化します。
string message = "Hello, World!";
文字列の連結
文字列を連結する方法は複数あります。
+ 演算子
string firstName = "John";
string lastName = "Doe";
string fullName = firstName + " " + lastName;
Console.WriteLine(fullName); // 出力: John Doe
String.Concatメソッド
string fullName = String.Concat(firstName, " ", lastName);
Console.WriteLine(fullName); // 出力: John Doe
String.Joinメソッド
string[] words = { "Hello", "World" };
string message = String.Join(" ", words);
Console.WriteLine(message); // 出力: Hello World
文字列補間
C# 6.0以降では、文字列補間を使用して簡潔に文字列を連結できます。
string fullName = $"{firstName} {lastName}";
Console.WriteLine(fullName); // 出力: John Doe
文字列の部分文字列
Substringメソッド
Substringメソッドを使用して、文字列の一部を取得できます。
string message = "Hello, World!";
string hello = message.Substring(0, 5);
Console.WriteLine(hello); // 出力: Hello
文字列の検索
IndexOfメソッド
IndexOfメソッドを使用して、文字列内の特定の文字や文字列の位置を検索できます。
string message = "Hello, World!";
int index = message.IndexOf("World");
Console.WriteLine(index); // 出力: 7
Containsメソッド
Containsメソッドを使用して、文字列が特定の文字列を含むかどうかを確認できます。
bool containsWorld = message.Contains("World");
Console.WriteLine(containsWorld); // 出力: True
文字列の変換
大文字・小文字の変換
ToUpperメソッド
ToUpperメソッドを使用して、文字列を大文字に変換します。
string message = "Hello, World!";
string upperMessage = message.ToUpper();
Console.WriteLine(upperMessage); // 出力: HELLO, WORLD!
ToLowerメソッド
ToLowerメソッドを使用して、文字列を小文字に変換します。
string lowerMessage = message.ToLower();
Console.WriteLine(lowerMessage); // 出力: hello, world!
トリミング
Trimメソッド
Trimメソッドを使用して、文字列の前後から空白を削除します。
string message = " Hello, World! ";
string trimmedMessage = message.Trim();
Console.WriteLine($"[{trimmedMessage}]"); // 出力: [Hello, World!]
TrimStartメソッド
TrimStartメソッドを使用して、文字列の先頭から空白を削除します。
string trimmedStart = message.TrimStart();
Console.WriteLine($"[{trimmedStart}]"); // 出力: [Hello, World! ]
TrimEndメソッド
TrimEndメソッドを使用して、文字列の末尾から空白を削除します。
string trimmedEnd = message.TrimEnd();
Console.WriteLine($"[{trimmedEnd}]"); // 出力: [ Hello, World!]
文字列の置換
Replaceメソッド
Replaceメソッドを使用して、文字列内の特定の文字列を別の文字列に置換します。
string message = "Hello, World!";
string newMessage = message.Replace("World", "C#");
Console.WriteLine(newMessage); // 出力: Hello, C#!
文字列の分割
Splitメソッド
Splitメソッドを使用して、文字列を特定の区切り文字で分割し、文字列の配列を取得します。
string message = "apple,banana,cherry";
string[] fruits = message.Split(',');
foreach (string fruit in fruits)
{
Console.WriteLine(fruit); // 出力: apple banana cherry
}
正規表現を使用した文字列操作
Regexクラス
C#のSystem.Text.RegularExpressions.Regexクラスを使用して、正規表現による高度な文字列操作を行うことができます。
パターンマッチング
using System.Text.RegularExpressions;
string input = "The quick brown fox jumps over the lazy dog.";
string pattern = @"\b\w{4}\b"; // ちょうど4文字の単語に一致
MatchCollection matches = Regex.Matches(input, pattern);
foreach (Match match in matches)
{
Console.WriteLine(match.Value); // 出力: "quick", "over", "lazy"
}
置換
string input = "The quick brown fox jumps over the lazy dog.";
string pattern = @"\bfox\b";
string replacement = "cat";
string result = Regex.Replace(input, pattern, replacement);
Console.WriteLine(result); // 出力: The quick brown cat jumps over the lazy dog.
分割
string input = "one,two;three four";
string pattern = @"[,; ]"; // カンマ、セミコロン、スペースで分割
string[] result = Regex.Split(input, pattern);
foreach (string s in result)
{
Console.WriteLine(s); // 出力: "one", "two", "three", "four"
}
文字列のフォーマット
String.Formatメソッド
String.Formatメソッドを使用して、文字列をフォーマットします。
int year = 2023;
string formattedString = String.Format("The year is {0}.", year);
Console.WriteLine(formattedString); // 出力: The year is 2023.
文字列補間
C# 6.0以降では、文字列補間を使用して簡潔に文字列をフォーマットできます。
string name = "John";
int age = 30;
string interpolatedString = $"My name is {name} and I am {age} years old.";
Console.WriteLine(interpolatedString); // 出力: My name is John and I am 30 years old.
まとめ
C#には、文字列操作のための豊富なメソッドと機能が用意されています。本記事では、文字列の宣言と初期化、連結、部分文字列の取得、検索、変換、トリミング、置換、分割、正規表現、フォーマットについて基本的な使い方を解説しました。これらの技術を習得することで、効率的に文字列を操作し、プログラムの可読性と保守性を向上させることができます。この記事で紹介した内容を参考にして、C#の文字列操作をマスターしてください。

