حل مسئله
سلام؛چجوری میشه یک معادله رو از داخل یک String حل کرد؟(مقدار X)
مثلا:
String string = "10 + X = 40";
راه اول:
اولین راه حلی که به نظر من میرسه اینه که String رو به CharArray تبدیل کنی،Spaceها را حذف کنی و داخل آن پیمایش کنی. به هر علامت جمع و ضرب و ... که رسیدی مقادیر قبل از آن را به عنوان عدد ذخیره کنی و علامت ها را هم با توجه به کد ascii آنها (یا با گذاشتن if) شناسایی کنی و اعمال کنی و دقت کنی پرانتز های تو در تو و اولویت علائم ریاضی را درست رعایت کنی.
راه دوم:
عبارتهایی که ما استفاده میکنیم عبارات میانوندی هستند.مثل:
2+3
که علامت جمع میان 2 و 3 قرار گرفته.
خیلی راحت میتوان این عبارت را به پسوندی تبدیل کرد (جستجو کن: الگوریتم تبدیل عبارت میانوندی به پسوندی). که میشه:
2 3 +
حال با استفاده از یک پشته(stack) و با عمل push و pop میتوان این عبارت پسوندی را پیمایش و نتیجه حاصل را بهدست آورد.(جستجو کن: الگوریتم ارزیابی عبارتهای پسوندی با استفاده از پشته)
خوبی روش دوم اینه که اولا الگوریتم های بهینه این کار موجوده، ثانیا سیستم عامل پردازش کمتری رو متحمل میشه و نهایتا شما نیازی نیست برای اولویت ها و پرانتز ها و غیره شرط های دست و پا گیر طراحی کنید و به طور خودکار این مسائل در الگوریتم های ارزیابی مورد بررسی قرار میگیرند.
میتونی از این هم استفاده کنی <
String str = "www.uncocoder.com"; str = str.substring(4, str.length());
نتیجه = uncocoder.com
با کد بالا تعیین کرده ایم که 4 کاراکتر اول رشته (String) حذف شود (به جای عدد 4 ، می توانید تعداد کاراکتر مورد نظر خود را بنویسید)،
String str = "www.uncocoder.com"; str = str.substring(0, str.length() - 4);
با کد بالا تعیین کرده ایم که 4 کاراکتر آخر رشته (String) حذف شود (به جای عدد 4 ، می توانید تعداد کاراکتر مورد نظر خود را بنویسید)، بنابراین نتیجه به صورت زیر می باشد :
www.uncocoder
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .