سی شارپ - رشته ها

در سی شارپ شما می توانید از آرایه ای از کاراکتر ها برای رشته ها استفاده کنید.اگرچه معمول تر آنست که از کلمه ی کلیدی string برای تعریف یک رشته استفاده شود.این کلمه ی کلیدی یک نام اختصار برای System.String است.

ساخت یک شی String

به روش های زیر می توان یک شی string ایجاد کرد

  • با تخصیص دادن یک رشته به یک متغیر string
  • استفاده از سارنده ی کلاس string
  • با استفاده از عملگر الحاق (+) رشته
  • با خواندنن مقدار یک متغیر یا دریافت خروجی از یک تابع که یک string بر می گرداند
  • با استفاده از متد های فرمت کردن رشته ها که یک مقدار را به یک شی استرینگ تبدیل می کنند.

مفاهیم بالا ، در مثال زیر استفاده شده اند:

using System;
namespace StringApplication
{
   class Program
   {
      static void Main(string[] args)
      {
         //from string literal and string concatenation
         string fname, lname;
         fname = "Rowan";
         lname = "Atkinson";
         
         string fullname = fname + lname;
         Console.WriteLine("Full Name: {0}", fullname);
         
         //by using string constructor
         char[] letters = { 'H', 'e', 'l', 'l','o' };
         string greetings = new string(letters);
         Console.WriteLine("Greetings: {0}", greetings);
         
         //methods returning string
         string[] sarray = { "Hello", "From", "Tutorials", "Point" };
         string message = String.Join(" ", sarray);
         Console.WriteLine("Message: {0}", message);
         
         //formatting method to convert a value
         DateTime waiting = new DateTime(2012, 10, 10, 17, 58, 1);
         string chat = String.Format("Message sent at {0:t} on {0:D}", waiting);
         Console.WriteLine("Message: {0}", chat);
      }
   }
}

نتیجه ی اجرای دستورات فوق به صورت زیر است

Full Name: Rowan Atkinson
Greetings: Hello
Message: Hello From Tutorials Point
Message: Message sent at 5:58 PM on Wednesday, October 10, 2012

خصوصیت های کلاس String

کلاس String دو خصوصیت زیر را دارد:

ردیف خصوصیت
1 Chars

کاراکتر موجود در یک مکان خاص از شی string را بر می گرداند.

2 Length

تعداد کاراکتر های رشته و یا طول رشته را بر می گرداند

متد های کلاس string

کلاس string متد های زیر را دارد که این متد ها به شما در کار کردن با رشته ها کمک می کنند.در جدول زیر تعدادی از این متد های پرکاربرد لیست شده است:

ردیف متد ها
1

public static int Compare(string strA, string strB)

دورشته را بایکدیگر مقایسه کرده و یک عدد صحیح که در واقع تریب آن رشته ها نسبت به یکدیگر است را بر می گرداند.

2

public static int Compare(string strA, string strB, bool ignoreCase )

دورشته را بایکدیگر مقایسه کرده و یک عدد صحیح که در واقع تریب آن رشته ها نسبت به یکدیگر است را بر می گرداند. اگرچه اگر مقدار متغیر ignoreCase برابر true باشد ، اعتنایی به کوچک بزرگی حروف نمی کند.

3

public static string Concat(string str0, string str1)

دو رشته را به هم متصل می کند

4

public static string Concat(string str0, string str1, string str2)

سه رشته را به هم متصل می کند

5

public static string Concat(string str0, string str1, string str2, string str3)

چهار رشته را به هم متصل می کند

6

public bool Contains(string value)

یک رشته را در رشته ی دیگر جستجو می کند

7

public static string Copy(string str)

یک رشته را در رشته ی دیگر کپی می کند

8 public void CopyTo(int sourceIndex, char[] destination, int destinationIndex, int count)

 

تعدادی از کاراکتر های یک رشته در موقعیت مشخص شده را درموقعیت خاصی از آرایه ای از کاراکتر های Unicode کپی می کند

9

public bool EndsWith(string value)

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

10

public bool Equals(string value)

بررسی می کندکه آیا رشته ی جاری با رشتهی تخصیص داده شده برابر است یا خیر.

11

public static bool Equals(string a, string b)

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

12

public static string Format(string format, Object arg0)

یک یا چند آیتم فرمت از رشته را با شی موجود در آبجکت جایگزین می کند.

13

public int IndexOf(char value)

ایندکس اولین موردی ازکاراکتر که در رشته ی جاری وجود دارد را بر می گرداند. ایندکس ها از صفر شروع می شوند

14

public int IndexOf(string value)

ایندکس اولین موردی از رشته ی ورودی که در رشته جاری وجود دارد را بر می گرداند. ایندکس ها از صفر شروع می شوند

15

public int IndexOf(char value, int startIndex)

ایندکس اولین موردی از کاراکتر Unicode ورودی ، از ایندکس داده شده، که در رشته جاری وجود دارد را بر می گرداند. ایندکس ها از صفر شروع می شوند

16

public int IndexOf(string value, int startIndex)

ایندکس اولین موردی از رشته ی ورودی ، از ایندکس داده شده، که در رشته جاری وجود دارد را بر می گرداند. ایندکس ها از صفر شروع می شوند

17

public int IndexOfAny(char[] anyOf)

ایندکس اولین موردی از هر کاراکتری در آرایه ی کاراکتر ورودی ، که در رشته جاری وجود دارد را بر می گرداند. ایندکس ها از صفر شروع می شوند

18

public int IndexOfAny(char[] anyOf, int startIndex)

ایندکس اولین موردی از هر کاراکتری در آرایه ی کاراکتر ورودی ، از ایندکس داده شده که در رشته جاری وجود دارد را بر می گرداند. ایندکس ها از صفر شروع می شوند

19

public string Insert(int startIndex, string value)

رشته ی ورودی را در نقطه ی مشخص شده از رشته ی جاری اضافه می شکند

20

public static bool IsNullOrEmpty(string value)

null و یا خالی بودن رشته ی ورودی را بررسی می کند

21

public static string Join(string separator, params string[] value)

همه ی رشته های موجود در آرایه های ورودی را با استفاده از رشته ی جداکننده ی ورودی به هم متصل می کند

22

public static string Join(string separator, string[] value, int startIndex, int count)

همه ی رشته های موجود در آرایه های ورودی را بهم وصل کرده و رشته ی جداکننده ی ورودی را بین آنها قرار می دهد.

23

public int LastIndexOf(char value)

ایندکس آخرین مکانی که کاراکتر در رشته پیدا می شود را بر می گرداند.

24

public int LastIndexOf(string value)

ایندکس آخرین مکانی که رشته ی ورودی در رشته ی جاری پیدا می شود را بر می گرداند.

25

public string Remove(int startIndex)

کاراکتر های موجود در رشته را از مکان مشخص شده تا آخر رشته حذف می کند

26

public string Remove(int startIndex, int count)

کاراکتر های موجود در رشتته را از مکان مشخص شده و به تعداد معین، حذف می کند

27

public string Replace(char oldChar, char newChar)

کاراکتر های موجود در یک رشته را با کاراکتر دیگری ، جایگزین می کند

28

public string Replace(string oldValue, string newValue)

زیررشته های موجود در یک رشته را با زیررشته ی دیگری ، جایگزین می کند

29

public string[] Split(params char[] separator)

یک رشته را در نقاطی که کاراکتر های موجود در separator قرار داردند، تجزیه و در یک آرایه ذخیره می کند.

30

public string[] Split(char[] separator, int count)

یک آرایه ای از رشته ها را را در نقاطی که کاراکتر های موجود در separator قرار داردند، تجزیه و در یک آرایه ذخیره می کند.

31 public bool StartsWith(string value)

 

مشخص می کند که آیا رشته با یک زیر رشته ی دیگر شروع می شود یا خیر

32

public char[] ToCharArray()

یک رشته را به آرایه ای از کاراکتر ها تبدیل می کند

33

public char[] ToCharArray(int startIndex, int length)

کاراکتر های یک رشته را از محل خاصی و به تعداد معینی به آرایه ای از رشته ها تبدیل می کند.

34

public string ToLower()

تمام حرف های یک رشته را به حروف کوچک تبدیل می کند.

35

public string ToUpper()

تمام حرف های یک رشته را به حروف بزرگ تبدیل می کند.

36

public string Trim()

فاصله های خالی را از ابتدا و انتهای رشته حذف می کند.

برای مشاهده ی لیست کامل متد های رشته به مستندات مایکروسافت مراجعه کنید.

مثال ها

در مثال های زیر نحوی استفاده از متد های بالا ، نشان داده شده است:

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

using System;
namespace StringApplication
{
   class StringProg
   {
      static void Main(string[] args)
      {
         string str1 = "This is test";
         string str2 = "This is text";

         if (String.Compare(str1, str2) == 0)
         {
            Console.WriteLine(str1 + " and " + str2 +  " are equal.");
         }
         else
         {
            Console.WriteLine(str1 + " and " + str2 + " are not equal.");
         }
         Console.ReadKey() ;
      }
   }
}

نتیجه ی اجرای دستورات بالا به صورت زیر خواهد بود

This is test and This is text are not equal.

رشته ای که حاوی رشته ی دیگر است:

using System;
namespace StringApplication
{
   class StringProg
   {
      static void Main(string[] args)
      {
         string str = "This is test";
         if (str.Contains("test"))
         {
            Console.WriteLine("The sequence 'test' was found.");
         }
         Console.ReadKey() ;
      }
   }
}

نتیجه ی اجرای دستورات بالا به صورت زیر خواهد بود

The sequence 'test' was found.

:دریافت یک زیررشته

using System;
namespace StringApplication
{
   class StringProg
   {
      static void Main(string[] args)
      {
         string str = "Last night I dreamt of San Pedro";
         Console.WriteLine(str);
         string substr = str.Substring(23);
         Console.WriteLine(substr);
      }
   }
}

نتیجه ی اجرای دستورات بالا به صورت زیر خواهد بود

San Pedro

الحاق رشته ها

using System;
namespace StringApplication
{
   class StringProg
   {
      static void Main(string[] args)
      {
         string[] starray = new string[]{"Down the way nights are dark",
         "And the sun shines daily on the mountain top",
         "I took a trip on a sailing ship",
         "And when I reached Jamaica",
         "I made a stop"};

         string str = String.Join("\n", starray);
         Console.WriteLine(str);
      }
   }
}

نتیجه ی اجرای دستورات بالا به صورت زیر خواهد بود:

Down the way nights are dark
And the sun shines daily on the mountain top
I took a trip on a sailing ship
And when I reached Jamaica
I made a stop