الگوریتم اول

لطفا صبر کنید...

رشته‌ها (Strings) در #C

رشته‌ها (Strings) در #C

در #C، رشته‌ها (Strings) برای ذخیره و مدیریت داده‌های متنی استفاده می‌شوند. رشته‌ها در #C یک نوع داده خاص از کلاس string هستند که در واقع نوعی آرایه از کاراکترها می‌باشند.

رشته‌ها در #C immutable هستند، به این معنی که نمی‌توانند تغییر کنند. وقتی شما یک عملیات بر روی یک رشته انجام می‌دهید، در واقع یک رشته جدید ساخته می‌شود.

۱. تعریف و استفاده از رشته‌ها

تعریف رشته

رشته‌ها می‌توانند با استفاده از کوتیشن‌های دوتایی (") تعریف شوند.

using System;

class Program
{
    static void Main()
    {
        // تعریف یک رشته
        string greeting = "سلام دنیا!";

        // نمایش رشته
        Console.WriteLine(greeting);
    }
}

خروجی:

سلام دنیا!

تعریف رشته‌های چندخطی

برای تعریف رشته‌های چندخطی (که شامل خط جدید باشند) می‌توان از @ قبل از کوتیشن‌ها استفاده کرد. این نوع رشته‌ها به صورت verbatim string literals شناخته می‌شوند.

using System;

class Program
{
    static void Main()
    {
        // تعریف یک رشته چندخطی
        string multilineString = @"این یک رشته
چندخطی است
که با استفاده از @ تعریف شده.";

        Console.WriteLine(multilineString);
    }
}

خروجی:

این یک رشته
چندخطی است
که با استفاده از @ تعریف شده.

۲. عملیات مختلف روی رشته‌ها

طول رشته

برای بدست آوردن طول یک رشته از خاصیت Length استفاده می‌شود.

using System;

class Program
{
    static void Main()
    {
        string text = "Hello, C#!";
        Console.WriteLine("طول رشته: " + text.Length);
    }
}

خروجی:

طول رشته: 12

دسترسی به کاراکترهای یک رشته

برای دسترسی به یک کاراکتر خاص از رشته می‌توان از اندیس استفاده کرد.

using System;

class Program
{
    static void Main()
    {
        string text = "Hello, C#!";
        Console.WriteLine("کاراکتر در موقعیت 7: " + text[7]);
    }
}

خروجی:

کاراکتر در موقعیت 7: C

جایگزینی متن در رشته

برای جایگزینی یک بخش از رشته با یک متن دیگر، از متد Replace استفاده می‌کنیم.

using System;

class Program
{
    static void Main()
    {
        string text = "Hello, C#!";
        string newText = text.Replace("C#", "CSharp");
        Console.WriteLine(newText);
    }
}

خروجی:

Hello, CSharp!

برش دادن رشته

برای استخراج قسمتی از یک رشته از متد Substring استفاده می‌شود.

using System;

class Program
{
    static void Main()
    {
        string text = "Hello, C#!";
        string subText = text.Substring(7, 3);  // شروع از موقعیت 7 و 3 کاراکتر بعد
        Console.WriteLine(subText);
    }
}

خروجی:

C#!

جستجو در رشته

برای پیدا کردن موقعیت اولین برخورد یک کاراکتر یا زیررشته در رشته از متد IndexOf استفاده می‌کنیم.

using System;

class Program
{
    static void Main()
    {
        string text = "Hello, C#!";
        int index = text.IndexOf("C#");
        Console.WriteLine("موقعیت C#: " + index);
    }
}

خروجی:

موقعیت C#: 7

تبدیل حروف بزرگ و کوچک

برای تبدیل رشته به حروف بزرگ یا کوچک از متدهای ToUpper و ToLower استفاده می‌کنیم.

using System;

class Program
{
    static void Main()
    {
        string text = "Hello, C#!";

        // تبدیل به حروف بزرگ
        Console.WriteLine(text.ToUpper());

        // تبدیل به حروف کوچک
        Console.WriteLine(text.ToLower());
    }
}

خروجی:

HELLO, C#!
hello, c#! 

حذف فضاهای اضافی

برای حذف فضاهای ابتدایی و انتهایی از رشته، می‌توان از متد Trim استفاده کرد.

using System;

class Program
{
    static void Main()
    {
        string text = "  Hello, C#!  ";
        string trimmedText = text.Trim();
        Console.WriteLine($"[{trimmedText}]");
    }
}

خروجی:

[Hello, C#!]

۳. مقایسه رشته‌ها

برای مقایسه دو رشته در #C از متد Equals یا Compare استفاده می‌شود.

مقایسه دقیق رشته‌ها

using System;

class Program
{
    static void Main()
    {
        string text1 = "Hello, C#!";
        string text2 = "Hello, C#!";
        
        bool areEqual = text1.Equals(text2);
        Console.WriteLine("رشته‌ها برابرند؟ " + areEqual);
    }
}

خروجی:

رشته‌ها برابرند؟ True

مقایسه رشته‌ها به‌طور نادقیق (بی‌توجه به حروف بزرگ و کوچک)

using System;

class Program
{
    static void Main()
    {
        string text1 = "Hello, C#!";
        string text2 = "hello, c#!";
        
        bool areEqualIgnoreCase = text1.Equals(text2, StringComparison.OrdinalIgnoreCase);
        Console.WriteLine("رشته‌ها برابرند (بی‌توجه به حروف بزرگ و کوچک)? " + areEqualIgnoreCase);
    }
}

خروجی:

رشته‌ها برابرند (بی‌توجه به حروف بزرگ و کوچک)? True

۴. پیوستن رشته‌ها

برای پیوستن دو یا چند رشته به یکدیگر، می‌توان از متد Concat یا اپراتور + استفاده کرد.

استفاده از اپراتور +

using System;

class Program
{
    static void Main()
    {
        string firstName = "Ali";
        string lastName = "Reza";
        
        string fullName = firstName + " " + lastName;
        Console.WriteLine(fullName);
    }
}

خروجی:

Ali Reza

استفاده از متد Concat

using System;

class Program
{
    static void Main()
    {
        string firstName = "Ali";
        string lastName = "Reza";
        
        string fullName = string.Concat(firstName, " ", lastName);
        Console.WriteLine(fullName);
    }
}

خروجی:

Ali Reza

۵. تبدیل انواع داده‌ها به رشته

برای تبدیل انواع داده‌ها (مانند عدد، تاریخ و ...) به رشته از متد ()ToString استفاده می‌شود.

مثال: تبدیل عدد به رشته

using System;

class Program
{
    static void Main()
    {
        int number = 123;
        string numberAsString = number.ToString();
        Console.WriteLine("عدد به رشته تبدیل شده: " + numberAsString);
    }
}

خروجی:

عدد به رشته تبدیل شده: 123

مثال: تبدیل تاریخ به رشته

using System;

class Program
{
    static void Main()
    {
        DateTime currentDate = DateTime.Now;
        string dateAsString = currentDate.ToString("yyyy-MM-dd");
        Console.WriteLine("تاریخ به رشته تبدیل شده: " + dateAsString);
    }
}

خروجی:

تاریخ به رشته تبدیل شده: 2025-03-11

جمع‌بندی

  • رشته‌ها در #C نوعی داده برای ذخیره اطلاعات متنی هستند.
  • می‌توانیم از متدهای مختلفی مثل Length، Substring، Replace، ToUpper و ... برای مدیریت و دستکاری رشته‌ها استفاده کنیم.
  • رشته‌ها immutable هستند، یعنی تغییرات در رشته‌ها باعث ایجاد یک رشته جدید می‌شود.
  • برای مقایسه رشته‌ها می‌توان از Equals و Compare استفاده کرد.