PDA

View Full Version : سوال: متن بعد از یک کاراکتر مشخص در یک رشته



ُِMohammadSina
شنبه 23 دی 1402, 20:25 عصر
سلام دوستان
ببخشید چطور میتونم متن بعد از یک کاراکتر مشخص در متغیر رو وارد یک متغیر دیگه کنم؟
برای مثال این متن موجود در str1 هست و من میخوام کلمه Two رو وارد str2 کنم.
string str1 = "One_Two";

mmbguide
شنبه 23 دی 1402, 21:48 عصر
سلام. در نمونه زیر به دو روش این کار را انجام دادم.


ابتدا با فرض اینکه مقدار str1 از یک الگوی جدا گننده استفاده کرده و کلمات با کاراکتر _ ازهم جدا شده اند آنها را بصورت یک آرایه در متغیر split ذخیره کردم.
در روش اول فرض میکنیم که شما با دانستن شماره اندیس اون عبارت در آرایه رو بدست میارید.
درنمونه دوم در یک حلقه به دنبال کلمه مورد نظر در آرایه میگردم و اگر مقدار مورد نظر پیدا شد، یک واحد به شماره اندیس جاری که در واقع شمارنده حلقه هستش یک واحد اضافه میکنم و مقدار بعدی را بدست میارم. البته باید ملاحظات بیشتری در کار با آرایه انجام بدید. مثلا اگر مقدار پیدا شد ازحلقه خارج بشید. یا اینکه اندیس بعدی range حلقه بیشتر نباشه که با خطا مواجه بشید و...



string str1 = "One_Two";
string result = string.Empty;
string[] split = str1.Split('_');


// راه حل اول
result = split[1];


// راه حل اول
for (int i = 0; i < split.Length; i++)
{
if (split[i] == "One")
result = split[i + 1];
}

ُِMohammadSina
شنبه 23 دی 1402, 22:50 عصر
خیلی ممنون
و ببخشید یک سوال دیگه
حالا تو همین کد اگه بخوایم متغیر result برابر با مقدار One بشه باید چیکار کنیم؟
(من از راه حل اول استفاده کردم)

ROSTAM2
یک شنبه 24 دی 1402, 02:34 صبح
خیلی ممنون
و ببخشید یک سوال دیگه
حالا تو همین کد اگه بخوایم متغیر result برابر با مقدار One بشه باید چیکار کنیم؟
(من از راه حل اول استفاده کردم)

سلام
بنظر میاد تازه داری برنامه نویسی یاد می گیری.
اون عددی ک توی [] قرار داره عدد ایندکس «است» (اندیس هم بهش می گن) ولی در کل Split یک آرایه است و طبق جداسازی که تعیین کردید _ كلمات رو از رشته جدا می کنه و هر کدوم رو بعنوان یک عنصر از آرایه اختصاص می ده ب خودش

متغیر ها یا عناصر آرایه از عدد 0 شروع میشه
بنابر این بستگی داره شما چند عنصر داشته باشید
و کلمه One عنصر چندم باشه
توی مثال گفته شده کلمه One عنصر یا متغیر اول هست بنابراین عدد ایندکس می شه 0

ROSTAM2
یک شنبه 24 دی 1402, 02:41 صبح
سلام دوستان
ببخشید چطور میتونم متن بعد از یک کاراکتر مشخص در متغیر رو وارد یک متغیر دیگه کنم؟
برای مثال این متن موجود در str1 هست و من میخوام کلمه Two رو وارد str2 کنم.
string str1 = "One_Two";


این هم روش سوم:

string str1 = "One_Two";
string Str2 = str1.Split("_")[1];


البته ازونجایی که شما نوشتید بعداز یک کاراکتر خاص می تونید از Split استفاده کنید و کاراکتر خاصی که مد نظرتون رو بعنوان جدا ساز تعیین کنید و از حلقه for next استفاده کنید و کلمه اول قبلش _ نداره بنابراین کلمه دوم می شه اولین متغیر یا عنصری که قبلش _ داشته....

ُِMohammadSina
یک شنبه 24 دی 1402, 11:27 صبح
سلام بله، با آرایه آشنایی داشتم ولی تو خط سوم بعد از = تو کد آقای mmdguide معنی Split رو متوجه نشده بودم .
ممنون

mmbguide
یک شنبه 24 دی 1402, 14:28 عصر
خیلی ممنون
و ببخشید یک سوال دیگه
حالا تو همین کد اگه بخوایم متغیر result برابر با مقدار One بشه باید چیکار کنیم؟
(من از راه حل اول استفاده کردم)


// راه حل اول
for (int i = 0; i < split.Length; i++)
{
if (split[i] == "One")
result = split[i];
}

mmbguide
یک شنبه 24 دی 1402, 14:35 عصر
سلام بله، با آرایه آشنایی داشتم ولی تو خط سوم بعد از = تو کد آقای mmdguide معنی Split رو متوجه نشده بودم .
ممنون

متد Split کارش جدا کردن عبارات در یک رشته برحسب پارامترهای مختلف هستش. شما میتونید بجای یک کاراکتر حتی چندین کاراکتر تعیین کنید تا متد Split برمبنای وجود هر یک از اون کاراکترها اقدام به جداسازی کنه:
155253

ُِMohammadSina
یک شنبه 24 دی 1402, 22:47 عصر
ممنون:قلب: