مشکل با تبدیل String به boolean
سلام
من یک عبارت boolean دارم در حالت اول درست کار میکنه
a=true;
b=true;
c=false;
boolean z=(a^b)|c;
اما این عبارت رو بصورت String از کاربر میگیریم وقتی اونو به این حالت پیاده می کنم دیگه جواب نمیده و همیشه جوابش false هست
a=true;
b=true;
c=false;
String zOrginal="(a^b)|c";
boolean z= Boolean.parseBoolean(zOrginal);
دوستان ممنون میشم بهم بگید چه تغییری توی پیاده سازیم بدم
نقل قول: مشکل با تبدیل String به boolean
عملکرد parseBoolean این نیست که عبارت رو براتون محاسبه کنه. چیزی که شما میخواید evaluation هست که برای اینکار نیاز هست یک مفسر ساده ای خودتون بسازید (البته قطعا کتابخونه هایی برای اینکار وجود داره). تو جاوا لااقل من ندیدم چنین چیزی به صورت پیشفرض باشه هر چند در برخی زبان ها وجود داره.
parseBoolean فقط عبارات رشته ای true (کوچک و بزرگ بودن حروف مهم نیست) رو به مقدار true (از نوع boolean) تبدیل میکنه و بقیه حالات رو false در نظر میگیره.
نقل قول: مشکل با تبدیل String به boolean
نقل قول:
نوشته شده توسط
vahid-p
عملکرد parseBoolean این نیست که عبارت رو براتون محاسبه کنه. چیزی که شما میخواید evaluation هست که برای اینکار نیاز هست یک مفسر ساده ای خودتون بسازید (البته قطعا کتابخونه هایی برای اینکار وجود داره). تو جاوا لااقل من ندیدم چنین چیزی به صورت پیشفرض باشه هر چند در برخی زبان ها وجود داره.
parseBoolean فقط عبارات رشته ای true (کوچک و بزرگ بودن حروف مهم نیست) رو به مقدار true (از نوع boolean) تبدیل میکنه و بقیه حالات رو false در نظر میگیره.
ممنون میشم بیشتر راهنمایی کنید که از چه طریقی این رو پیاده سازی کنم
تشکر
نقل قول: مشکل با تبدیل String به boolean
نقل قول:
نوشته شده توسط
hajilari
ممنون میشم بیشتر راهنمایی کنید که از چه طریقی این رو پیاده سازی کنم
تشکر
جواب که کاملا واضح بود دوست عزیز
می تونید از یک کلاس Evaluation استفاده کنید خیلی ساده کارش اینه هست که رشته ای که شما بهش میدید مثل یک دستور برای شما تفسیر میکنه باید یک کتابخانه براش دانلود کنید چون زبان جاوا از Evaluator پشتیبانی نمیکنه فقط برای این کار کتابخانه زیاد هست حتما مستندات کتابخانه را مطالعه کنید تا مطمن باشید که کاری که شما می خواهید را براتون انجام میده یانه.!
نقل قول: مشکل با تبدیل String به boolean
نقل قول:
نوشته شده توسط
farhad_shiri_ex
جواب که کاملا واضح بود دوست عزیز
می تونید از یک کلاس Evaluation استفاده کنید خیلی ساده کارش اینه هست که رشته ای که شما بهش میدید مثل یک دستور برای شما تفسیر میکنه باید یک کتابخانه براش دانلود کنید چون زبان جاوا از Evaluator پشتیبانی نمیکنه فقط برای این کار کتابخانه زیاد هست حتما مستندات کتابخانه را مطالعه کنید تا مطمن باشید که کاری که شما می خواهید را براتون انجام میده یانه.!
من گشتم اما نتونستم پیدا کنم، ممنون میشم اگه شما میشناسید معرفی کنید.
نقل قول: مشکل با تبدیل String به boolean
نقل قول: مشکل با تبدیل String به boolean
نقل قول:
نوشته شده توسط
hajilari
من گشتم اما نتونستم پیدا کنم، ممنون میشم اگه شما میشناسید معرفی کنید.
نمیدونم چطور سرچ زدید که پیدا نکردید. من اینو سرچ زدم evaluator library for java و انواع مختلفی پیدا کردم.
مثلا:
http://janino-compiler.github.io/janino
https://github.com/scireum/parsii
https://github.com/gianluca-nitti/java-expr-eval
و...
که بهتره بخونید و هر کدوم به کارتون اومد استفاده کنید. بازم هست، سرچ کنید و اونی که دقیقا چیزی که شما میخواید رو پشتیبانی میکنه رو استفاده کنید.