C# Academy · บทเรียน

สร้างสตริง

การต่อสตริงและ StringBuilder

บทเรียน 4 จาก 413 ขั้นตอน

สร้างสตริง เป็นบทเรียน C# Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C# Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน

การเชื่อมสตริงด้วย +

วิธีที่ง่ายที่สุดในการสร้างสตริงคือเชื่อมส่วนต่าง ๆ ด้วยตัวดำเนินการ +

การทำเช่นนี้เรียกว่าการต่อข้อความ และเหมาะกับส่วนประกอบไม่กี่ส่วน เช่น การนำคำทักทายมาต่อกับชื่อ

class Program
{
    static void Main()
    {
        string name = "Sam";
        string greeting = "Hi, " + name;
        System.Console.WriteLine(greeting);
    }
}

การแทรกค่าในสตริง

การแทรกค่าเป็นวิธีที่อ่านง่ายกว่าในการใส่ค่าลงในข้อความ

ใส่ $ ไว้หน้าสตริง แล้วครอบตัวแปรด้วยวงเล็บปีกกา ค่าต่าง ๆ จะถูกนำไปใส่ในตำแหน่งที่เหมาะสมโดยอัตโนมัติ

class Program
{
    static void Main()
    {
        string name = "Sam";
        int age = 9;
        System.Console.WriteLine($"{name} is {age}");
    }
}

ต้นทุนของ += ในลูป

การใช้ += เพื่อขยายสตริงภายในลูปทำงานได้ช้า

เนื่องจากสตริงเปลี่ยนแปลงไม่ได้ การใช้ += แต่ละครั้งจึงสร้างสตริงใหม่ทั้งหมดและคัดลอกอักขระเดิมทุกตัว สำหรับการวนซ้ำจำนวนมาก วิธีนี้ทำให้เสียทั้งเวลาและหน่วยความจำ

string result = "";
for (int i = 0; i < 1000; i++)
    result += i; // creates many strings

ทำความรู้จัก StringBuilder

StringBuilder ถูกสร้างมาเพื่อประกอบข้อความอย่างมีประสิทธิภาพ

คลาสนี้อยู่ในเนมสเปซ System.Text แทนที่จะสร้างสตริงใหม่ทุกครั้ง คลาสนี้จะขยายบัฟเฟอร์ภายใน จึงทำงานได้เร็วขึ้นมากเมื่อมีการเพิ่มข้อความหลายครั้ง

using System.Text;

StringBuilder sb = new StringBuilder();

การเพิ่มข้อความด้วย StringBuilder

เรียกใช้ Append เพื่อเพิ่มข้อความลงใน StringBuilder

สามารถเพิ่มข้อความหลายส่วนต่อกันได้ ตัวสร้างจะเก็บทุกอย่างไว้ในบัฟเฟอร์จนกว่าจะขอรับสตริงสุดท้าย

using System.Text;
class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("Hello");
        sb.Append(", world");
        System.Console.WriteLine(sb.ToString());
    }
}

การรับสตริงสุดท้าย

StringBuilder ไม่ใช่ string ด้วยตัวมันเอง

เมื่อเพิ่มข้อความเสร็จแล้ว ให้เรียกใช้ ToString เพื่อรับข้อความที่เสร็จสมบูรณ์ จากนั้นจะนำไปแสดงผลหรือจัดเก็บเหมือนสตริงทั่วไปได้

using System.Text;
StringBuilder sb = new StringBuilder();
sb.Append("Done");
string final = sb.ToString();

การเพิ่มข้อความในลูป

นี่คือจุดที่ StringBuilder แสดงประสิทธิภาพได้ดี

เพิ่มข้อความภายในลูป แล้วตัวสร้างจะขยายตัวอย่างมีประสิทธิภาพ โดยหลีกเลี่ยงการคัดลอกที่ += จะสร้างขึ้น โปรแกรมนี้สร้างสตริงที่ประกอบด้วยตัวเลข

using System.Text;
class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder();
        for (int i = 1; i <= 5; i++)
            sb.Append(i);
        System.Console.WriteLine(sb.ToString());
    }
}

AppendLine

AppendLine ทำงานเหมือน Append แต่ยังเพิ่มการขึ้นบรรทัดใหม่หลังข้อความด้วย

เหมาะสำหรับสร้างผลลัพธ์หลายบรรทัด เช่น รายการที่แต่ละรายการอยู่คนละบรรทัด

using System.Text;
class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder();
        sb.AppendLine("Line 1");
        sb.AppendLine("Line 2");
        System.Console.Write(sb.ToString());
    }
}

การสร้างจากอักขระ

สามารถเพิ่มค่า char ทีละตัวได้เช่นกัน ไม่ใช่แค่สตริงทั้งก้อน

วิธีนี้มีประโยชน์เมื่อแปลงข้อความทีละอักขระ เช่น เปลี่ยนตัวอักษรแต่ละตัวเป็นตัวพิมพ์ใหญ่ขณะสร้างผลลัพธ์ใหม่

using System.Text;
class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder();
        foreach (char c in "loud")
            sb.Append(char.ToUpper(c));
        System.Console.WriteLine(sb.ToString());
    }
}

ควรใช้แต่ละวิธีเมื่อใด

สำหรับส่วนประกอบไม่กี่ส่วน การใช้ + หรือการแทรกค่าในสตริงจะอ่านง่ายและเหมาะสม

สำหรับการสร้างข้อความในลูปหรือการเชื่อมส่วนประกอบจำนวนมาก ควรใช้ StringBuilder หลักง่าย ๆ คือ การเชื่อมไม่กี่ครั้งให้ใช้ตัวดำเนินการ ส่วนการเชื่อมหลายครั้งให้ใช้ตัวสร้าง

string.Join

เมื่อมีชุดข้อมูลของส่วนประกอบอยู่แล้ว string.Join จะนำส่วนประกอบเหล่านั้นมาเชื่อมกันโดยใช้ตัวคั่น

ระบุตัวคั่นก่อน แล้วจึงระบุรายการ วิธีนี้เป็นทางเลือกแบบกระชับแทนการวนซ้ำสำหรับรายการง่าย ๆ

string[] parts = { "a", "b", "c" };
string joined = string.Join("-", parts);
// joined is "a-b-c"

ตรวจความเข้าใจ

ทดสอบความเข้าใจเกี่ยวกับการสร้างสตริง

ทบทวน

ใช้ + หรือการแทรกค่าในสตริงเพื่อเชื่อมสตริงไม่กี่ตัว และใช้ string.Join สำหรับรายการส่วนประกอบ

สำหรับการสร้างข้อความในลูป ให้เลือกใช้ StringBuilder โดยเรียก Append หรือ AppendLine แล้วใช้ ToString เพื่อรับผลลัพธ์ วิธีนี้หลีกเลี่ยงการคัดลอกที่สิ้นเปลืองซึ่ง += สร้างขึ้นได้ เพราะสตริงเปลี่ยนแปลงไม่ได้

เริ่มต้นได้ฟรี

เรียนรู้ C# ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
93
บทเรียน
346

คำถามที่พบบ่อย

บทเรียน “สร้างสตริง” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “สร้างสตริง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C# Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “สร้างสตริง”

การต่อสตริงและ StringBuilder คุณปฏิบัติ C# Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C# Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน C# Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “สร้างสตริง” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน C# Academy นี้ได้ไหม

ได้ บทเรียน C# Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ชนิดข้อมูล char
  2. เมธอดช่วยจัดการ Char
  3. วนซ้ำผ่านสตริง
  4. สร้างสตริง
← กลับไปที่ C# Academy