文字列とテキスト:不変性、補間、逐語的文字列、StringBuilder、比較
文字列の不変性を理解し、文字列補間、エスケープ文字列、逐語的文字列を使います。StringBuilderで効率よくテキストを構築し、安全に比較する方法とchar/Unicodeの基礎も確認します。
「文字列とテキスト:不変性、補間、逐語的文字列、StringBuilder、比較」はCoddyKit上の無料C# Academyレッスンです。 これはレッスン1/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC# Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C# Academyコースには全3レッスンが含まれています。
テキストの概要
目標:文字列を安全かつ効率的に使用します。
- 不変性
- 文字列補間とエスケープ
- 逐語的文字列
- StringBuilder
- 比較とカルチャーに関する注意点
不変性
不変:ToUpperやReplaceなどのメソッドは新しい文字列を返し、元の文字列は変わりません。
using System;
public class Program
{
public static void Main(string[] args)
{
string s = "hello";
string upper = s.ToUpper(); // new string
Console.WriteLine("s = " + s); // hello
Console.WriteLine("upper = " + upper);// HELLO
string replaced = s.Replace("h", "y"); // new string
Console.WriteLine("replaced = " + replaced);
}
}
文字列補間とエスケープ
文字列補間には$"..."を使用します。一般的なエスケープは、\\nが改行、\\"が引用符、\\\\がバックスラッシュです。
using System;
public class Program
{
public static void Main(string[] args)
{
string name = "Ada";
int score = 95;
// C# 6 string interpolation and escapes
string msg = $"Hi {name}, score = {score}";
string quoted = "She said \"hi\"";
string line = "first line\nsecond line";
Console.WriteLine(msg);
Console.WriteLine(quoted);
Console.WriteLine(line);
}
}
逐語的文字列
逐語的文字列は@で始まり、Windows のパスや複数行のテキストに適しています。
using System;
public class Program
{
public static void Main(string[] args)
{
// Verbatim string keeps backslashes and newlines as typed
string path = @"C:\Projects\Demo\readme.txt";
string multi = @"Line1
Line2";
Console.WriteLine(path);
Console.WriteLine(multi);
}
}
StringBuilder
多数の文字列を連結する場合は、StringBuilderを使用して割り当てを減らし、パフォーマンスを向上させます。
using System;
using System.Text;
public class Program
{
public static void Main(string[] args)
{
var sb = new StringBuilder();
for (int i = 1; i <= 3; i = i + 1)
{
sb.Append("Item ").Append(i).Append(", ");
}
string result = sb.ToString();
Console.WriteLine(result);
}
}
比較とカルチャー、char
StringComparisonを使用して比較方法を制御します(例:OrdinalIgnoreCase)。charは UTF-16 コード単位であり、一部の絵文字にはサロゲートペアが必要です(この入門の範囲外です)。
using System;
using System.Globalization;
public class Program
{
public static void Main(string[] args)
{
string a = "file";
string b = "FILE";
// Case-insensitive, culture-invariant comparison
bool same = string.Equals(a, b, StringComparison.OrdinalIgnoreCase);
Console.WriteLine("Same (ord ignore case) = " + same);
// Culture example: ToUpper with current culture
string iDot = "i";
string upper = iDot.ToUpper(CultureInfo.CurrentCulture);
Console.WriteLine("Upper(i) in current culture = " + upper);
}
}
不変性の意味
まとめ
まとめ:文字列は不変です。文字列補間とエスケープを使用し、パスには@を優先します。多数の追加にはStringBuilderを使用し、StringComparisonで比較します。また、charが UTF-16 のコード単位であることを覚えておきましょう。
よくある質問
「文字列とテキスト:不変性、補間、逐語的文字列、StringBuilder、比較」レッスンは無料ですか?
はい。「文字列とテキスト:不変性、補間、逐語的文字列、StringBuilder、比較」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C# Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C# Academyコースには全3レッスンが含まれています。
「文字列とテキスト:不変性、補間、逐語的文字列、StringBuilder、比較」で何を学びますか?
文字列の不変性を理解し、文字列補間、エスケープ文字列、逐語的文字列を使います。StringBuilderで効率よくテキストを構築し、安全に比較する方法とchar/Unicodeの基礎も確認します。 ブラウザで直接実行するハンズオンコードでC# Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
C# Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのC# Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/3です。
「文字列とテキスト:不変性、補間、逐語的文字列、StringBuilder、比較」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このC# Academyレッスンでコードを書いて実行できますか?
はい。すべてのC# Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 文字列とテキスト:不変性、補間、逐語的文字列、StringBuilder、比較
- StringBuilder、比較とカルチャに関する注意点
- char、Unicodeの基礎、簡単な解析と書式設定