C# - 文字列:初心者のガイド
こんにちは、将来のプログラマーさんたち!今日は、C#の素晴らしい文字列の世界に飛び込みます。コードを書いたことがない人も心配しないでください - この旅の親切なガイドとしてお手伝いします。では、始めましょう!
文字列とは?
本題に入る前に、まず文字列とは何かを理解しましょう。プログラミングでは、文字列は文字のシーケンス、つまり単語、文、または全文節などです。文字、数字、記号が一绪に結びついた「文字列」と考えてください。
文字列オブジェクトの作成
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