متد های متغیر های رشته ای در سی شارپ
متد های متغیر های رشته ای
با سلام و خسته نباشید.
امروز با اموزش و اشنایی با متد های داده های رشته ای در خدمت شما هستیم.همانطور که در پست متد های عددی دیدیم این متد ها کار را برای تسلط بیشتر برای برنامه نویسان راحت کرده اند.در این پست به مجموعه کامل متد های رشته ای خواهیم پرداخت.
String.Split(”);
این متد کارکتر مورد نظر را حذف میکند و به خط بعدی منتقل میشود
مثال:
1 2 3 | string s = "red,blue,green"; string [] a=s.Split(','); foreach (string word in a) { Console.WriteLine(word); } |
خروجی:
Red
Blue
Green
String.Clone();
این متد از مقدار متغیر رشته ای شبیه سازی میکند
مثال:
1 2 3 | string s = "red,blue,green"; string f =(string) s.Clone(); Console.WriteLine(f); |
خروجی: “red,blue,green”
String.Copy();
بوسیله این متد میتوانید از رشته ای رشته دیگری مشابه بوجود اورید
مثال:
1 2 3 | string s = "red,blue,green"; string f = String.Copy(s); Console.WriteLine(f); |
تفاوت String.Copy(); و String.Clone(); پس در چیست؟
Clone منبع اصلی رشته در حافظه را برمیگرداند اما copy یک رشته جدید در حافظه بوجود میاورد همراه با ساختار ها و داده های مشابه شی کپی شده.
String.CopyTo(int نقطه شروع رشته اصلی,char[] ارایه کارکتری, int عنصر ارایه در مقصد,int تعداد کارکتر هایی که کپی میخواهیم شوند );
این متد یک یا چند کارکتر مشخص از یک رشته را در قسمت مشخصی از رشته دیگر کپی میکند.
مثال:
1 2 3 4 | string str1 = "good morning"; char[] chrs = new char[6]; str1.CopyTo(0, chrs, 0, 6); Console.WriteLine(chrs[0].ToString() + chrs[1].ToString()); |
خروجی:”go”
String.CompareTo();
همانطور که در پست متد های عددی گفته شد این متد برای مقایسه دو رشته است که ایا رشته اول شامل رشته مشخص شده هست یا نه در صورت برقرار بودن شرط خروجی 1 و در غیر این صورت کمتر از 1 میشود خروجی.
مثال:
1 2 3 4 | string str1 = "good morning"; string str2 = "good"; int b = str1.CompareTo(str2); Console.WriteLine(b); |
خروجی: 1
String.Concat();
به کمک این متد میتوانیم دو رشته را با هم ترکیب کنیم.
مثال:
1 2 3 4 | string str1 = "good "; string str2 = "morning"; string m= string.Concat(str1,str2); Console.WriteLine(m); |
خروجی: good morning
String.EndsWith();
این مدت بررسی میکند رشته مورد نظر با رشته مشخص شده تمام میشود یا خیر.خروجی این متد true و false است.
مثال:
1 2 3 | string str1 = "good morning"; if(str1.EndsWith("morning")) Console.WriteLine("its true"); |
خروجی:”its true”
String.Equals();
این مدت برای بررسی دو رشته با هم است.در صورت مساوی بودن دو رشته مقدار true برگشت داده میشود.توجه شود که در Equals مساوی بودن دو رشته بررسی میشود بر خلاف CompareTo که فقط شباهت قسمتی از متن برای برقراری شرط کافی بود.
مثال:
1 2 3 | string str1 = "good morning"; bool s = str1.Equals("morning"); Console.WriteLine(s); |
خروجی:
false
String.Fortmat(پارامتر ورودی , نوع قالبندی);
این متد برای قالب بندی یک رشته است که میتواند شامل قالبندی زمانی و واحد پول و … شود.
مثال:
1 2 3 | int v = 10; string str1 = "number is: "; Console.WriteLine(str1 +String.Format("{0:n4}",v)); |
خروجی:
number is 10/0000
پارامتر n4 تا 4 رقم اعشار نشان میدهد عدد را.
پارامتر های دیگر میتواند T برای زمان حال و C برای واحد پولی و … شود.
String. GetEnumerator();
قبل از بررسی این متد لازم است که با IEnumerator اشنا شوید.
IEnumerator :این رابط برای شمارش هرچیز قابل شمارش در برنامه نویسی بکار میرود و عملکردی مشابه حلقه foreach دارد.این شمارنده دارای دو متد MoveNext() و Reset() و همچنین یک خاصیت به نام Current.
متد MoveNext() محل شمارنده را از محلی به محل بعدی منتقل میکند مانند اینکه از اندیس اول ارایه به اندیس دوم منتقل میکند و کار اصلی در حلقه foreach را این متد انجام میدهد.خروجی این متد از نوع bool هستش ک مشخص میکند ایا به انتهای مجموعه رسیده است یا خیر.
همچنین خاصیت Current که یک خاصیت فقط خواندنی هست به محل کنونی شمارنده اشاره میکند و بدون فراخانی آن به مقدار مورد نیاز در مجوعه دسترسی نداریم.و البته متد Reset() برای برگرداندن محل شمارنده به موقعیت اولیه است.
متد های String.GetEnumerator() و متد های مشابه کاملا خاصیتی اینچنین دارند و شما میتوانید هرچیز قابل شمارش را بوسیله متد های IEnumerator فراخوانی کنید.
مثال:
1 2 3 4 | string str1 = "hello"; CharEnumerator ch = str1.GetEnumerator(); while(ch.MoveNext()) Console.WriteLine(ch.Current); |
خروجی:
H
E
L
L
O
حلقه while به کمک متد movenext بررسی میکند که ایا به انتهای کارکتر ها رسیده شده است یا خیر در صورت true بودن به کار خود ادامه میدهد و current هم همانطور ک گفته شد در هر بار اجرای بدنه حلقه به ان محل از کلمه اشاره میکنند.
String.GetHashCode();
این متد کد هش رشته را برمیگرداند.
مثال:
1 2 | string str1 = "hello"; Console.WriteLine(str1.GetHashCode()); |
خروجی:-
695839
String.GetType(); و String.GetType();
همانطور که در پست های قبلی گفته شد این متد ها نوع ورودی را برمیگردانند.
مثال:
1 2 | string str1 = "hello"; Console.WriteLine(str1.GetTypeCode()); |
خروجی:
String
String.IndexOf();
این متد محل رشته ورودی را نشان میدهد.
مثال:
1 2 | string str1 = "good morning"; Console.WriteLine(str1.IndexOf("morning")); |
خروجی:
5
String.SubString(نقطه شروع , نقطه پایان);
این مدت بخشی از رشته را انتخاب میکند به عنوان رشته جدید برمیگرداند.
مثال:
1 2 3 | string str1 = "good morning",str2; str2 = str1.Substring(5,7); Console.WriteLine(str2); |
خروجی:
morning
String.IndexOfAny(Char[]);
این مدت محل کارکتر مشخص شده را در رشته برمیگرداند.خروجی این متد از نوع عددی int است که جایگاه کارکتر را مشخص میکند.
مثال:
1 2 3 | string str1 = "good morning"; int m = str1.IndexOfAny(new char[] { 'm' }); Console.WriteLine(m); |
خروجی:
5
String.IsNormalized(); و String.Normalized();
متد Normalized() برای نرمال سازی یک رشته و IsNormalized() برای بررسی نرمال بودن رشته است و خروجی ان از نوع bool است.این نرمال سازی در فرم های مختلف یونیکد انجام پذیر است.normalized یک رشته را با همان مقدار اما با یونیکد متفاوت برمیگرداند.
مثال:
1 2 3 4 5 | string str1 = "á"; String a = str1.Normalize(); String a2 = str1.Normalize(NormalizationForm.FormD); Console.WriteLine(a.IsNormalized()); Console.WriteLine(a2.IsNormalized()); |
خروجی:
true
false
همانطور که مشاهده میکنید در formD این کارکتر نرمال نیست و مقدار برگشتی false است.
String.IsNullOrEmpty();
این متد همانطور که از اسمش پیداست بررسی میکند که متغیر null یا خالی است یا خیر.خروجی این متد هم bool هستش.
مثال:
1 2 3 4 5 6 | string str1 = ""; String str2 = null; bool a = String.IsNullOrEmpty(str1); bool b = String.IsNullOrEmpty(str2); Console.WriteLine(a); Console.WriteLine(b); |
خروجی:
True
True
String.IsnNullOrWhiteSpace();
این متد عملکردی مشابه متد قبلی دارد با این تفاوت که در صورت ایجاد فضای خالی یا space زدن خروجی همچنان true هست.
مثال:
1 2 3 4 5 6 7 8 9 10 | string str1 = " "; String str2 = "\n"; bool a = String.IsNullOrEmpty(str1); bool b = String.IsNullOrEmpty(str2); bool c = String.IsNullOrWhiteSpace(str2); bool d = string.IsNullOrWhiteSpace(str1); Console.WriteLine(a); Console.WriteLine(b); Console.WriteLine(c); Console.WriteLine(d); |
خروجی:
False
False
True
True
String.Join();
این متد برای ترکیب رشته ها با هم در یک رشته مشترک است
مثال:
1 2 | string[] arr = { "red", "blue", "green" }; Console.WriteLine(String.Join(",",arr)); |
خروجی:
red,blue,green
String.LastIndexOf();
این متد برای پیدا کردن اخرین کارکتر مورد نظر در رشته است.
مثال:
1 2 3 | string str1 = "good morning"; int index = str1.LastIndexOf('o'); Console.WriteLine(index); |
خروجی:
6
String.PadLeft(); و String.PadRight();
برای دادن فضا میان رشته ها میتوانیم از این متد ها استفاده کنیم
مثال:
1 2 3 4 5 6 | string s = "red".PadRight(10); string s2 = "blue".PadRight(10); Console.Write(s); Console.WriteLine("green"); Console.Write(s2); Console.WriteLine("yellow"); |
خروجی:
Red green
Blue yellow
String.Remove(محل شروع, محل پایان حذف );
برای حذف بخشی از رشته استفاده میشود
مثال:
1 2 | string s = "good morning"; Console.WriteLine(s.Remove(0,5)); |
خروجی:
morning
String.Replace(کارکتر مورد نظر , کارکتر جدید);
برای تغییر کارکتری در یک رشته با کارکتر دیگر.
مثال:
1 2 | string s = "goxd morning"; Console.WriteLine(s.Replace('x','o')); |
خروجی:
good morning
String.StartWith(); و String.EndWith();
این متد ها برای مشخص کردن شروع و پایان رشته است که خروجی انها از نوع bool است
مثال:
1 2 3 | string s = "www.google.com"; if(s.StartsWith("www") && s.EndsWith("com")) Console.WriteLine("its true"); |
خروجی:its true””
String.ToCharArray();
برای تبدیل رشته به ارایه از نوع کارکتر استفاده میشود.
مثال:
1 2 3 4 | string s = "hello"; s.ToCharArray(); foreach(char ch in s) Console.WriteLine(ch); |
خروجی:
H
E
L
L
O
String.ToLower(); و String.ToUpper();
ToLower برای تبدیل رشته به حروف کوچک و ToUpper برای تبدیل رشته به حروف بزرگ
مثال:
1 2 3 | string s = "gOoD MoRnInG"; Console.WriteLine(s.ToUpper()); Console.WriteLine(s.ToLower()); |
خروجی:
GOOD MORNING
good morning
String.Trim () و String.TrimEnd() و String.TrimStart()
این سه متد برای حذف فضای خالی اول و اخر متن هستند به این صورت که TrimStart فضای خالی اول متن TrimEnd فضای خالی اخر متن و trim هم اخر هم اول را حذف میکند.
مثال:
1 2 3 4 | string s = " good morning "; Console.WriteLine(s.Trim()); Console.WriteLine(s.TrimEnd()); Console.WriteLine(s.TrimStart()); |
خروجی:
“good morning”
” good morning”
“good morning ”