نوع رشته ای نمایانگر یک آرایه ای از کاراکترها است که طول آن با ویژگی Length
تعیین میشود. موقعیت مکانی کاراکترهای دورن رشته از صفر تا Length
-1 میباشد. #C متدهای زیادی را برای کار با رشته ها در اختیار ما قرار میدهد و ما میخواهیم رایجترین آنها را با هم بررسی کنیم.
این مقاله، سرفصلی از دوره آموزشی زیر میباشد:
- راه اندازی محیط توسعه
- Data Type ها، Declaration ها و تعریف متغیرها در #C
- عملگرها در #c
- تبدیل نوع های داده ای
- ورودی و خروجی در #c
- کار با رشته ها
- شرطها در #c
- حلقه ها (While، Do-While، For)
- مدیریت خطاها
- Access Modifier ها
- متدها
- کلمات کلیدی Ref و Out
- بازگشت و متدهای بازگشتی
- آرایه ها (آرایه های تک بعدی و چند بعدی)
- کار با فایلها، StreamWriter و StreamReader
- کار با فایلها، File و Directory
اگر می خواهید محتویات کامل این دوره را ببینید ، می توانید بر روی لینک مبانی #c کلیک کنید.
برای دانلود source مثالهای این مقاله، اینجا کلیک کنید.
پس شروع میکنیم.
ما در این مقاله موضوعات زیر را پوشش میدهیم:
- Substring, IndexOf, LastIndexOf
- Contains, StartsWith, EndsWith
- Remove, Insert
- ToLower, ToUpper
- مثالها
- نتیجه گیری
Substring, IndexOf, LastIndexOf
Substring(int startIndex) متدی است که قسمتی از رشته را از موقعیت مکانی ( startIndex
) مشخص شده تا انتهای رشته برمیگرداند.
Substring(int startIndex, int length) متدی است که قسمتی از رشته را با طول ( length) مشخص شده از موقعیت مکانی (startIndex) مشخص شده برمیگرداند.
حالا در عمل این را با هم بررسی میکنیم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
class Program { static void Main(string[] args) { string testString = "this is some string to use it for our example."; string partWithoutLength = testString.Substring(10); string partWithLength = testString.Substring(5, 10); Console.WriteLine(partWithoutLength); Console.WriteLine(partWithLength); Console.ReadKey(); } } |
()IndexOf متدی است که یک عدد صحیح که بیانگر اولین موقعیت مکانی کاراکتر یا یک رشته در داخل رشته انتخاب شده میباشد را برمیگرداند. اگر مقدار مورد نظر در داخل رشته وجود نداشته باشد، متد 1- برمیگرداند.
چند overload از این متد وجود دارد: IndexOf(char value)
,
IndexOf(string value)
, IndexOf(char value, int startIndex)
,
IndexOf(string value, int startIndex)
و غیره. اگر ما این متد را با پارامتر startIndex
استفاده کنیم در این صورت، جست و جو از ابتدای رشته انجام نمیشود بلکه جست و جو از موقعیت مکانی تعیین شده تا انتهای رشته صورت میگیرد:
1 2 3 4 |
int charPosition = testString.IndexOf('i'); int stringPosition = testString.IndexOf("some"); int charPosWithStartIndex = testString.IndexOf('s', 10); int stringPosWithStartIndex = testString.IndexOf("some", 10); |
()LastIndexOf متدی است که به دنبال کاراکتر یا رشته مورد جست و جو از آخر رشته مورد نظر تا به ابتدا میگردد و موقعیت مکانی آن را برمیگرداند. این متد هم مانند متد IndexOf
، همان overload ها را نیز دارد:
1 2 |
int lastPosition = testString.LastIndexOf('o'); int stringLastPosition = testString.LastIndexOf("is"); |
Contains, StartsWith, EndsWith
Contains(string value) متدی است که در صورتی که یک رشته شامل مقدار مورد نظر باشد true برمیگرداند در غیر اینصورت false برمیگرداند:
1 |
bool containsResult = testString.Contains("for"); |
StartsWith(string value) متدی است که در صورتی که رشته مورد نظر با value داده شده شروع شود true برمیگرداند در غیر اینصورت false برمیگرداند. نقطه مقابل این متد، متد EndsWith(string value) میباشد که اگر رشته مورد نظر به value داده شده ختم گردد true در غیر اینصورت false برمیگرداند:
1 2 |
bool startsWithResult = testString.StartsWith("bad"); bool endsWithResult = testString.EndsWith("example"); |
Remove, Insert
متد Remove(int startIndex) کارکترها را از موقعیت مکانی (startIndex) مشخص شده تا پایان رشته حذف میکند و رشته جدید بدست آمده را برمیگرداند. یک overload از این متد وجود دارد:
Remove(int startIndex, int count) که یک تعداد (count) مشخص شده از کاراکترها را از موقعیت مکانی (startIndex) مشخص شده حذف میکند. با پارامتر count، تعیین میکنیم که چه تعداد از کاراکترها را قصد داریم حذف نماییم:
1 2 |
string loweredString = testString.Remove(10); string loweredStringWithCount = testString.Remove(10, 9); |
Insert(int startIndex, string value) متدی است که value داده شده را به داخل رشته مورد نظر در موقعیت مکانی (startIndex
) مشخص شده، درج میکند و در آخر، رشته تغییر داده شده را به عنوان نتیجه برمیگرداند:
1 |
string stringWithInsert = testString.Insert(13, "UPDATED "); |
ToLower, ToUpper
()ToLower یک رشته جدید که شامل حروف کوچک شده رشته مورد نظر است را برمیگرداند:
1 |
string lowerCaseString = testString.ToLower(); |
()ToUpper یک رشته جدید که شامل حروف بزرگ شده رشته مورد نظر است را برمیگرداند:
1 |
string upperCaseString = testString.ToUpper(); |
مثالها
مثال 1: یک برنامه ایجاد کنید که نام کوچک و نام فامیلی را به همراه یک فضای خالی بین آنها به عنوان ورودی گرفته و سپس نام کوچک را در یک سطر و نام فامیلی را در سطر دیگر چاپ نماید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
class Program { static void Main(string[] args) { Console.WriteLine("Enter your full name, blank space separated"); string fullName = Console.ReadLine(); int blankPosition = fullName.IndexOf(' '); string name = fullName.Substring(0, blankPosition); string lastName = fullName.Substring(blankPosition + 1); Console.WriteLine(name); Console.WriteLine(lastName); Console.ReadKey(); } } |
نتیجه:
مثال 2: یک برنامه بنویسید که یک جمله رااز ورودی بگیرد و کلمه اول و آخر آن را حذف نماید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
class Program { static void Main(string[] args) { Console.WriteLine("Enter your sentence: "); string sentence = Console.ReadLine(); int firstBlankPosition = sentence.IndexOf(' '); string withoutFirstWord = sentence.Remove(0, firstBlankPosition + 1); int lastBlankPosition = withoutFirstWord.LastIndexOf(' '); string withoutFirstAndLast = withoutFirstWord.Remove(lastBlankPosition); Console.WriteLine(withoutFirstAndLast); Console.ReadKey(); } } |
نتیجه گیری
بسیار خب.
حالا ما استاد کار با اکثر متدهای رشته ای در #C شدیم. با ترکیب این متدها، میتوانیم راه حلهای کارسازی را در اپلیکیشنهایمان ایجاد کنیم.
در مقاله بعدی با ما همراه باشید که قرار است در مورد شرطها در #C صحبت کنیم.