+2 امتیاز
مثلا من یه متن دارم ‎

اینجوری:‎

با سلام aaaaaa خدمت جناب bbbbbb‎

این aaaa و bbbb طبق ورودی میخوام تغییر بدم

2 پاسخ

+2 امتیاز
سلام دوست عزیز از متد Replace کلاس String می تونی استفاده کنید . آموزشش در سایت موجود هست .
+2 امتیاز

سلام

میتونید ابتدا اسامی فعلی رو حذف و سپس اسامی جدید رو جایگزین کنید.

نکته: امکان داره هر دو اسم یکی باشه، مثلا با سلام امیر سرداری خدمت جناب امیر سرداری.

این متد اسامی جدید رو که با اسامی فعلی باید جایگزین بشن رو همراه با رشته ای که تغییرات باید اعمال بشه میگیره و تغییرات رو اعمال میکنه، و رشته ی مذکور حتما و حتما باید ساختاری که شما گفتید رو داشته باشه (با سلام aaaaaa خدمت جناب bbbbbb) و در غیر اینصورت نتیجه صحیح بر نمیگردونه.

متد:

        private static string changeNames(string newFirstName, string newSecondName, string str)
        {
            // اندیس شروع اسم اول
            int firstName_startIndex = str.IndexOf("سلام") + 5;
            // اندیس پایان اسم اول
            int firstName_endIndex = str.IndexOf("خدمت") - 1;
            // حذف اسم قبلی
            str = str.Remove(firstName_startIndex, firstName_endIndex - firstName_startIndex);
            // جایگزینی اسم جدید
            str = str.Insert(firstName_startIndex, newFirstName);

            // اندیس شروع اسم دوم
            int secondName_startIndex = str.IndexOf("جناب") + 5;
            // حذف اسم دوم
            str = str.Remove(secondName_startIndex);
            // جایگزینی اسم جدید
            str = str.Insert(secondName_startIndex, newSecondName);

            return str;
        }

 

آزمودن متد:

        static void Main(string[] args)
        {
            string str = "با سلام vb341  خدمت جناب younes ebrahimi";
            str = Program.changeNames("omidvar", "vbnetgenius", str);
            Console.WriteLine(str);
            Console.ReadKey();
        }

روشهای بهتری هم ممکنه وجود داشته باشه ولی در حال حاضر این روش به ذهنم رسید و هر طور که به نظرتون خوبه میتونید این متد رو بهبود بدید.

 

سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,921 کاربر

دسته بندی ها

...