C# - 文字列:初心者のガイド

こんにちは、将来のプログラマーさんたち!今日は、C#の素晴らしい文字列の世界に飛び込みます。コードを書いたことがない人も心配しないでください - この旅の親切なガイドとしてお手伝いします。では、始めましょう!

C# - Strings

文字列とは?

本題に入る前に、まず文字列とは何かを理解しましょう。プログラミングでは、文字列は文字のシーケンス、つまり単語、文、または全文節などです。文字、数字、記号が一绪に結びついた「文字列」と考えてください。

文字列オブジェクトの作成

C#では、文字列を作成するのは簡単です。いくつかの方法を見てみましょう:

string greeting = "Hello, World!";
string name = "Alice";
string empty = "";
string nullString = null;

これらの例では:

  • greeting は "Hello, World!" を含む文字列です。
  • name は "Alice" を含む文字列です。
  • empty は空の文字列(存在はするが文字は含まれていません)です。
  • nullString は null の文字列(メモリ上に存在さえしません)です。

C#では、文字列はダブルクォートで囲まれます。シングルクォートを使用すると、C#はそれを単一の文字と解釈します。

文字列クラスのプロパティ

C#の文字列には、いくつかの便利なビルトインプロパティがあります。いくつか見てみましょう:

Length

Length プロパティは、文字列に含まれる文字数を教えてくれます。

string message = "Hello, C#!";
int length = message.Length;
Console.WriteLine($"The message has {length} characters.");
// 出力: The message has 9 characters.

Empty と IsNullOrEmpty

ときには、文字列が空であるかどうかを確認する必要があります。C#は便利な方法を提供しています:

string emptyString = "";
bool isEmpty = string.Empty == emptyString;
bool isNullOrEmpty = string.IsNullOrEmpty(emptyString);

Console.WriteLine($"Is the string empty? {isEmpty}");
Console.WriteLine($"Is the string null or empty? {isNullOrEmpty}");
// 出力:
// Is the string empty? True
// Is the string null or empty? True

文字列クラスのメソッド

さあ、楽しい部分に進みましょう - 文字列メソッド!これらは文字列が持つ特殊な力で、文字列をさまざまな方法で操作し、分析することができます。

ToUpper() と ToLower()

これらのメソッドは、文字列の大小文字を変更します:

string mixedCase = "HeLLo, WoRLd!";
string upperCase = mixedCase.ToUpper();
string lowerCase = mixedCase.ToLower();

Console.WriteLine(upperCase); // 出力: HELLO, WORLD!
Console.WriteLine(lowerCase); // 出力: hello, world!

Trim()、TrimStart()、TrimEnd()

これらのメソッドは、文字列から空白を削除します:

string paddedString = "   Hello, World!   ";
string trimmed = paddedString.Trim();
string trimmedStart = paddedString.TrimStart();
string trimmedEnd = paddedString.TrimEnd();

Console.WriteLine($"Trimmed: '{trimmed}'");
Console.WriteLine($"Trimmed Start: '{trimmedStart}'");
Console.WriteLine($"Trimmed End: '{trimmedEnd}'");
// 出力:
// Trimmed: 'Hello, World!'
// Trimmed Start: 'Hello, World!   '
// Trimmed End: '   Hello, World!'

Substring()

このメソッドは、文字列の一部を抽出します:

string sentence = "The quick brown fox jumps over the lazy dog.";
string extract = sentence.Substring(4, 5);
Console.WriteLine(extract); // 出力: quick

IndexOf() と LastIndexOf()

これらのメソッドは、文字または文字列の位置を探します:

string text = "Hello, Hello, Hello";
int firstIndex = text.IndexOf("Hello");
int lastIndex = text.LastIndexOf("Hello");

Console.WriteLine($"First 'Hello' at index: {firstIndex}");
Console.WriteLine($"Last 'Hello' at index: {lastIndex}");
// 出力:
// First 'Hello' at index: 0
// Last 'Hello' at index: 14

Replace()

このメソッドは、指定された文字列の occurrences を置き換えます:

string original = "I like apples, apples are my favorite fruit.";
string replaced = original.Replace("apples", "oranges");
Console.WriteLine(replaced);
// 出力: I like oranges, oranges are my favorite fruit.

以下の表に、これらのメソッドをまとめます:

メソッド 説明
ToUpper() 全ての文字を大文字に変換
ToLower() 全ての文字を小文字に変換
Trim() 両端の空白を削除
TrimStart() 先頭の空白を削除
TrimEnd() 末尾の空白を削除
Substring() 文字列の一部を抽出
IndexOf() 文字列の最初の occurrences を検索
LastIndexOf() 文字列の最後の occurrences を検索
Replace() 指定された文字列を置き換え

実例の実際の使用

これらの文字列プロパティとメソッドを学んだところで、実際の例で使ってみましょう:

string userInput = "   JoHn DoE   ";

// 入力をきれいにして標準化します
string cleanName = userInput.Trim().ToLower();

// 各単語の最初の文字を大文字にします
string[] nameParts = cleanName.Split(' ');
for (int i = 0; i < nameParts.Length; i++)
{
if (!string.IsNullOrEmpty(nameParts[i]))
{
nameParts[i] = char.ToUpper(nameParts[i][0]) + nameParts[i].Substring(1);
}
}

string formattedName = string.Join(" ", nameParts);

Console.WriteLine($"Original input: '{userInput}'");
Console.WriteLine($"Formatted name: '{formattedName}'");
// 出力:
// Original input: '   JoHn DoE   '
// Formatted name: 'John Doe'

この例では、乱雑なユーザー入力を取り除き、小文字に変換し、それぞれの単語の最初の文字を大文字にします。これはフォーム処理やデータクリーンアップなどの多くのアプリケーションで一般的なタスクです。

結論

おめでとうございます!あなたはすでに C# の文字列の世界の最初のステップを踏み出しました。文字列の作成、プロパティの使用、さまざまなメソッドを適用する方法を学びました。実践は完璧を生みますので、自分のコードでこれらの概念を試してみてください。

文字列はプログラミングで最もよく使われるデータ型の一つであり、それをマスターすることでコーディングの基盤が固まります。ぜひ探求を続け、コードを書き続け、そして何より楽しみましょう!

未来の C# マスターたち、ハッピーコーディング!

Credits: Image by storyset