جداکردن رشته ها
اگر بخواهید یک رشته را به چند رشته تکه تکه کنید میتوانید از متد ()split استفاده نمایید. اجازه دهید نگاهی به سربارگذاری های مختلف این متد بیندازیم. متد ()Split، آرایهای از رشتهها را بر میگرداند، که هر عنصر از این آرایه، شامل یک زیر رشته است. اولین سربارگذاری این متد، آرایهای از کاراکترها را قبول میکند و بر اساس آنها تشخیص میدهد که رشته باید در چه جایی به قسمتهای مختلف تقسیم شود.
string message = "The quick brown fox jumps over the lazy dog."; string[] substrings = message.Split(' '); foreach (string s in substrings) { Console.WriteLine(s); }
The quick brown fox jumps over the lazy dog.
در مثال بالا از کاراکتر فاصله (‘ ‘) برای جدا کردن کلمات در رشته بالا استفاده کردهایم چون دو کلمه متوالی به وسیله فاصله از هم جدا میشوند. کلمات در آرایه substrings ذخیره میشوند. سپس با استفاده از دستور foreach آنها را در خطوط جداگانه چاپ میکنیم. میتوان تعداد زیر رشتههای برگشتی را به وسیله سربارگذاری دیگر متد ()Split محدود کرد.
string message = "The quick brown fox jumps over the lazy dog."; string[] substrings = message.Split(" ".ToCharArray(), 3); foreach (string s in substrings) { Console.WriteLine(s); }
The quick brown fox jumps over the lazy dog.
همانطور که در مثال بالا مشاهده میکنید، دومین آرگومان برای تشخیص تعداد زیر رشتهها به کار میرود. خروجی نشان میدهد که دو کلمه اول از رشته جدا شدهاند و مابقی رشته در عنصر آخر آرایه ذخیره میشود. سربارگذاری دیگر این متد استفاده از نوع شمارشی StringSplitOptions است. این نوع شمارشی دارای دو مقدار None و RemoveEmptyEntries است. با استفاده از StringSplitOptions.None میتوانید یک زیر رشته خالی در آرایه ذخیره کنید. و با استفاده از StringSplitOptions.RemoveEmptyEntries میتوان تمام زیر رشتههای خالی را حذف کرد. به تکه کد زیر توجه کنید :
string message = "string1#string2##string4#string5"; string[] results = message.Split("#".ToCharArray(), StringSplitOptions.None); foreach (string s in results) { Console.WriteLine(s); }
string1 string2 string4 string5
در سربارگذاری متد ()Split که در مثال بالا مشاهده کردید متد یک آرایه از نوع کاراکتر به عنوان اولین آرگومان قبول کرده و به دستور ما از کاراکتر “#” برای تعیین حد زیر رشتهها استفاده میکند. به همین دلیل است که از متد ()ToCharArray استفاده کردهایم. دومین آرگومان مقدار StringSplitOption است. در این قسمت ما مقدار None را ارسال میکنیم و چون رشته دارای زیر رشته خالی است ارسال این مقدار چندان تاثیری در نمایش نهایی ندارد (میتوانید یکبار قسمت StringSplitOptions.None را حذف کرده و برنامه را اجرا کنید). حال از مقدار RemoveEmptyEntries استفاده میکنیم.
string message = "string1#string2##string4#string5"; string[] results = message.Split("#".ToCharArray(),StringSplitOptions.RemoveEmptyEntries); foreach (string s in results) { Console.WriteLine(s); }
string1 string2 string44string5
همانطور که مشاهده میکنید نتیجه استفاده از این مقدار حذف سومین زیر رشته خالی است. از این روش اغلب برای ذخیره داده در فایل متنی استفاده میشود.
سلام. سایتتون خیلی خوبه.
چطوری میتونم یه رشته از کلمات فارسی مثل “سلام” را در سی شارپ به “س ل ا م”تبدیل کنم؟
از طریق تابع آماده البته مورد نیازمه
سلام …
وبلاگ شما هم خوبه…موفق و موید باشین
سلام.
سایت خوبی دارین.
خواستم بگم اگه مایل بودین وبلاگ منو با اسم مسئله های برنامه نویسی لینک کنید.
اینم آدرس وبلاگم:
http://decoding.blogfa.com/
حتما یه سری بزنین.