استفاده از دستور Substring در سیشارپ
Substring در سیشارپ برای استخراج بخشی از یک رشته استفاده میشود و با تعیین موقعیت شروع و تعداد کاراکتر، متن را جدا میکند.
10 شهریور 1405
لینک کوتاه
استفاده از دستور Substring در سیشارپ
در برنامهنویسی، کار با رشتهها یا String یکی از نیازهای رایج در بسیاری از پروژههاست.گاهی لازم است تنها بخشی از یک متن را استخراج کنیم؛ برای مثال، چند کاراکتر اول یک نام، بخشی از یک کد، شمارهای از داخل یک رشته یا قسمتی از یک متن طولانی.
در زبان برنامهنویسی سیشارپ، متد Substring یکی از ابزارهای کاربردی برای انجام این کار است.
با استفاده از Substring میتوان مشخص کرد که از چه موقعیتی در یک رشته شروع به استخراج کنیم و چه تعداد کاراکتر را در خروجی قرار دهیم.
Substring در سیشارپ چیست؟
Substring یک متد از کلاس String در زبان سیشارپ است که برای استخراج بخشی از یک رشته استفاده میشود.به زبان ساده، فرض کنید یک رشته مانند زیر داریم:
string text = "Hello World";
اگر بخواهیم فقط بخشی از این متن را دریافت کنیم، میتوانیم از Substring استفاده کنیم.برای مثال:
string result = text.Substring(0, 5);
Console.WriteLine(result);
خروجی برنامه خواهد بود:
Hello
در این مثال، عدد 0 مشخص میکند استخراج از موقعیت صفر شروع شود و عدد 5 نشان میدهد که پنج کاراکتر استخراج شود.
نکته مهم این است که شمارهگذاری کاراکترها در سیشارپ از صفر شروع میشود.
بنابراین اولین کاراکتر رشته دارای اندیس 0، دومین کاراکتر اندیس 1 و به همین ترتیب است.
آیا به دنبال یک فرصت عالی برای یادگیری برنامهنویسی هستید؟ 🚀
با دوره آموزشی سیشارپ ما، شما میتوانید مهارتهای خود را به سطح جدیدی ارتقا دهید! این دوره بهطور کامل طراحی شده تا به شما کمک کند تا از مبتدی تا پیشرفته در دنیای برنامهنویسی سیشارپ پیش بروید.
👨🏫 چرا دوره ما را انتخاب کنید؟
- محتوای جامع و عملی: با پروژههای واقعی و تمرینات عملی، یادگیری را به تجربهای جذاب تبدیل کنید.
- مدرس مجرب: از تجربه و دانش مدرس حرفهای بهرهمند شوید که شما را در هر مرحله از یادگیری راهنمایی میکنند.
- پشتیبانی ۲۴/۷: هر زمان که سوالی داشتید، ما در کنار شما خواهیم بود تا به شما کمک کنیم.
- دسترسی مادامالعمر: به محتوای دوره دسترسی دائمی داشته باشید و هر زمان که خواستید، میتوانید به آن مراجعه کنید.
💡 فرصت را از دست ندهید!
بایادگیری سیشارپ، میتوانید در دنیای فناوری اطلاعات به یک متخصص تبدیل شوید و در پروژههای جذاب و چالشبرانگیز شرکت کنید.
همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آیندهای روشنتر بردارید!
ساختار اصلی Substring در سی شارپ
متد Substring در سیشارپ به دو شکل پرکاربرد استفاده میشود.شکل اول:
string result = text.Substring(startIndex);
در این حالت، استخراج از اندیس مشخصشده آغاز میشود و تا انتهای رشته ادامه پیدا میکند.
برای مثال:
string text = "Programming";
string result = text.Substring(3);
Console.WriteLine(result);
خروجی:
gramming
زیرا کاراکتر موجود در اندیس 3 حرف g است و استخراج تا پایان رشته ادامه پیدا میکند.
شکل دوم:
string result = text.Substring(startIndex, length);
در این حالت علاوه بر نقطه شروع، تعداد کاراکترهایی که باید استخراج شوند نیز مشخص میشود.
برای مثال:
string text = "Programming";
string result = text.Substring(0, 7);
Console.WriteLine(result);
خروجی:
Program
در این مثال استخراج از اندیس صفر شروع شده و هفت کاراکتر دریافت میشود.
استفاده از Substring برای استخراج نام
یکی از کاربردهای رایج Substring استخراج بخشی از اطلاعات یک رشته است.فرض کنید نام کامل یک شخص در یک متغیر ذخیره شده است:
string name = "Farzad";
اگر بخواهیم سه حرف اول نام را استخراج کنیم، میتوانیم بنویسیم:
string shortName = name.Substring(0, 3);
Console.WriteLine(shortName);
خروجی:
Far
این روش در پروژههایی که نیاز به ساخت عنوان کوتاه، نمایش خلاصه اطلاعات یا ایجاد شناسه دارند، میتواند کاربرد داشته باشد.
استخراج اطلاعات از کد یا شناسه
فرض کنید یک کد محصول به شکل زیر داریم:string productCode = "LAP20260015";
ممکن است سه حرف اول مربوط به دستهبندی محصول و بخش بعدی مربوط به سال باشد.
برای استخراج سه حرف اول میتوان نوشت:
string category = productCode.Substring(0, 3);
Console.WriteLine(category);
خروجی:
LAP
همچنین برای استخراج سال میتوان از موقعیت مناسب استفاده کرد:
string year = productCode.Substring(3, 4);
Console.WriteLine(year);
خروجی:
2026
البته در پروژههای واقعی بهتر است برای پردازش دادههای پیچیده، ساختار اطلاعات نیز در نظر گرفته شود و صرفاً به موقعیت ثابت کاراکترها وابسته نباشیم.
نکته مهم درباره اندیسها
یکی از رایجترین خطاها هنگام استفاده از Substring اشتباه در تعیین اندیس است.برای مثال:
string text = "Hello";
اندیسهای این رشته به شکل زیر هستند:
H e l l o
0 1 2 3 4
اگر بنویسیم:
text.Substring(1, 3);
خروجی خواهد بود:ell
زیرا استخراج از اندیس 1 شروع شده و سه کاراکتر دریافت میشود.
بنابراین هنگام استفاده از Substring باید هم نقطه شروع و هم تعداد کاراکترهای موردنیاز را با دقت محاسبه کنیم.
خطای ArgumentOutOfRangeException
اگر اندیس شروع یا تعداد کاراکترهای مشخصشده معتبر نباشد، سیشارپ میتواند خطای ArgumentOutOfRangeException ایجاد کند.برای مثال:
string text = "Hello";
string result = text.Substring(2, 10);
در اینجا تنها سه کاراکتر از اندیس 2 تا پایان رشته باقی مانده است، اما برنامه درخواست استخراج ده کاراکتر کرده است.
بنابراین محدوده مشخصشده معتبر نیست.
برای جلوگیری از چنین مشکلاتی، بهتر است قبل از استفاده از Substring طول رشته را بررسی کنیم.
مثلاً:
if (text.Length >= 5)
{
string result = text.Substring(0, 5);
Console.WriteLine(result);
}
این روش باعث میشود برنامه تنها زمانی اقدام به استخراج کند که تعداد کاراکترهای موردنیاز در رشته وجود داشته باشد.
تفاوت Substring با Range در سی شارپ
در نسخههای جدید سیشارپ، امکان استفاده از قابلیت Range نیز وجود دارد. برای مثال:string text = "Hello World";
string result = text[0..5];
Console.WriteLine(result);
خروجی:
Hello
این روش میتواند در برخی شرایط خواناتر از Substring باشد.
با این حال، Substring همچنان یکی از متدهای شناختهشده و پرکاربرد برای کار با رشتههاست و در بسیاری از پروژهها و کدهای قدیمیتر نیز با آن مواجه خواهید شد.

استفاده از Substring برای حذف بخشی از متن
گاهی هدف ما استخراج یک بخش خاص نیست، بلکه میخواهیم بخشی از رشته را حذف کنیم.برای مثال:
string text = "Hello World";
string result = text.Substring(6);
Console.WriteLine(result);
خروجی:
World
در واقع با انتخاب اندیس مناسب میتوانیم قسمت موردنظر را جدا کنیم و در متغیر دیگری قرار دهیم.
استفاده از Substring همراه با متدهای دیگر
Substring میتواند در کنار متدهای دیگری مانند IndexOf، Contains، Replace و Trim استفاده شود.برای مثال، فرض کنید یک آدرس ایمیل داریم:
string email = "user@example.com";
اگر بخواهیم بخش دامنه را جدا کنیم، میتوانیم ابتدا موقعیت @ را پیدا کنیم:
int position = email.IndexOf('@');
string domain = email.Substring(position + 1);
Console.WriteLine(domain);
خروجی:
example.com
این مثال نشان میدهد که ترکیب متدهای رشتهای میتواند امکان پردازش اطلاعات متنی را بسیار سادهتر کند.
آیا Substring روی رشته اصلی تغییر ایجاد میکند؟
خیر. رشتهها در سیشارپ از نوع String هستند و String یک نوع immutable یا تغییرناپذیر است.بنابراین استفاده از Substring رشته اصلی را تغییر نمیدهد، بلکه یک رشته جدید ایجاد میکند.
برای مثال:
string text = "Hello World";
string result = text.Substring(0, 5);
Console.WriteLine(text);
Console.WriteLine(result);
خروجی:
Hello World
Hello
همانطور که مشاهده میکنید، مقدار text بدون تغییر باقی میماند.
جمع بندی
متد Substring یکی از ابزارهای مهم برای کار با رشتهها در زبان سیشارپ است.با استفاده از آن میتوان بخشی از یک متن را بر اساس موقعیت و تعداد کاراکترهای موردنظر استخراج کرد.
فرم ساده آن به صورت زیر است:
text.Substring(startIndex);
و زمانی که به تعداد مشخصی از کاراکترها نیاز داریم:text.Substring(startIndex, length);
در هنگام استفاده از این متد باید به اندیسگذاری از صفر، طول رشته و محدوده معتبر توجه داشته باشیم؛ زیرا تعیین اشتباه پارامترها میتواند باعث ایجاد خطا شود.Substring در پروژههای مختلف از پردازش نام و کد محصول گرفته تا استخراج بخشهایی از اطلاعات متنی کاربرد دارد.
همچنین میتوان آن را با متدهایی مانند IndexOf و سایر امکانات کار با رشتهها ترکیب کرد تا عملیات پردازش متن با انعطاف بیشتری انجام شود.
در نهایت، اگرچه در نسخههای جدید سیشارپ امکاناتی مانند Range نیز برای برش رشتهها وجود دارد، آشنایی کامل با Substring همچنان برای هر برنامهنویس سیشارپ ضروری است؛ زیرا این متد ساده، خوانا و در بسیاری از پروژههای واقعی بسیار کاربردی است.



کاربران ما
شما هم نظرتون با ما دریاره “استفاده از دستور Substring در سیشارپ” اشتراک بزارید
برای ارسال نظر لطفا ورود یا ثبت نام کنید