ورود

نسخه کامل مشاهده نسخه کامل : سوال در مورد یک تابع پارسر



MohammadJavad.T
26-10-2011, 11:55
سلام به همه دوستان انجمن یه سوال داشتم

اگه جواب بدین ممنون میشم .

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

تو یه قسمت یه مشکل دارم

فرض یه رشته به این تابع میدم به صورت زیر


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

با یه حلقه for each که کل استرینگ رو به صورت زیر پیمایش میکنم


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

یا این حلقه اون جا های که اسپیس داره رو پیدا میکنم!

حالا میخوام اونجا های که دو تا اسپیس پشت هم هست یا سه تا اسپیس رو تبدیل به 1 اسپیس کنه

مثلا استرینگ بالا رو اینطوری نشون بده


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

بین هر کلمه فقط یه اسپیس!!!
چی کار باید بکنم؟

عــــلی
26-10-2011, 12:31
سلام دوست عزیز.
شما باید از Regex استفاده کنید:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدموفق و سربلند باشید در پناه حق:11:.

MohammadJavad.T
26-10-2011, 12:55
ممنون دوست خوبم خیلی کمک کردی

_H2_
01-11-2011, 00:34
سلام
راه حل کلی پردازش رشته ها همان regex است که دوستمان hamishebahar معرفی کردند.
ولی حیفم آمد نکته کوچکی را یادآوری نکنم!
اگر فقط و فقط قصد تبدیل دو فضای خالی به یک فضای خالی است شاید کد بسیار ساده زیر کارآمدتر باشد:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
البته ایرادی هم دارد! این به معنی تعویض سه فاصله خالی با یک فاصله نیست!
(((البته راه حل های کوتاهی با ایده های جالب دیگر هم دارد ولی از نظر بازدهی سرعتی خیلی کارامد نیستند)))
موفق باشید.