View Full Version : حذف تمام کاراکترهای بین دو کاراکتر خاص
matarata
چهارشنبه 23 اردیبهشت 1394, 11:41 صبح
سلام. من تعداد زیادی رشته دارم که میخوام با کد جاوا یکی یکی این رشته هارو بخونم و داخل هر رشته تمام کاراکترهای بین "(" و ")" رو حذف کنم. خیلی گشتم کدی پیدا نکردم. داخل سایت StackOverFlow هم پرسیدم اما کسی درست جواب نداد. از چه کدی باید استفاده کنم. ممنون میشم راهنماییم کنید.
dalmif
چهارشنبه 23 اردیبهشت 1394, 12:58 عصر
سلام دوست عزیز
اگه کد هاتون یکسان باشه یعنی در همه جا همین کد بین () باشه میتونید replace کنید و اگر هم ثابت نیست یه راه دیگه هم هست.
که شما اول جواب بدید که ثابت هست یا نه اگه ثابت نبود راه دوم رو بگم.:لبخند:
djtrex
چهارشنبه 23 اردیبهشت 1394, 13:07 عصر
سلام. من تعداد زیادی رشته دارم که میخوام با کد جاوا یکی یکی این رشته هارو بخونم و داخل هر رشته تمام کاراکترهای بین "(" و ")" رو حذف کنم. خیلی گشتم کدی پیدا نکردم. داخل سایت StackOverFlow هم پرسیدم اما کسی درست جواب نداد. از چه کدی باید استفاده کنم. ممنون میشم راهنماییم کنید.
جزییات سوالتون مشخص نیست برای همین توی stackoverflow هم نتیجه نگرفتید.
فرضا این عبارت چه جوری باید حذف بشه؟ (پرانتز های تو در تو)
Lorem (ipsum dolor sit (amet), consectetur (adipisicing elit, sed do eiusmod
tempor (incididunt ut labore et dolore) magna aliqua). Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea) commodo ((()))
اینو امتحان کنید:
String str = "this is a (dummy) text (12345678) !";
String newStr = str.replaceAll("\\(.*?\\)", "");
//output: this is a text !
در ضمن اگه تعداد رشته ها زیاد هست بهتره توی ui thread انجام ندید. (از asyncTask یا ... استفاده کنید)
matarata
چهارشنبه 23 اردیبهشت 1394, 23:04 عصر
جزییات سوالتون مشخص نیست برای همین توی stackoverflow هم نتیجه نگرفتید.
فرضا این عبارت چه جوری باید حذف بشه؟ (پرانتز های تو در تو)
Lorem (ipsum dolor sit (amet), consectetur (adipisicing elit, sed do eiusmod
tempor (incididunt ut labore et dolore) magna aliqua). Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea) commodo ((()))
اینو امتحان کنید:
String str = "this is a (dummy) text (12345678) !";
String newStr = str.replaceAll("\\(.*?\\)", "");
//output: this is a text !
در ضمن اگه تعداد رشته ها زیاد هست بهتره توی ui thread انجام ندید. (از asyncTask یا ... استفاده کنید)
دقیقا همینطوری مد نظرم بود. کار کرد خیلی ممنون. داخل StackOverFlow هم همین الان یکی همینو گفت. :قلب:
اگر بخوام به جای پرانتز از کاراکتر دیگه هم استفاده کنم باید همینطوری بنویسم؟ مثلا به جای پرانتز باز و بسته از حروف یا هرچیزی استفاده کنم. همینطوریه؟
یک سوال دیگه هم دارم. میخوام بگم اگر داخل رشته حرف انگلیسی دید حذف کنه. مثلا رشتم مخلوطی از حروف فارسی و انگلیسی و علامتها هست من میخوام تمام حروف انگلیسی داخل رشته رو حذف کنه. البته فکر نکنم شدنی باشه.
djtrex
چهارشنبه 23 اردیبهشت 1394, 23:35 عصر
دقیقا همینطوری مد نظرم بود. کار کرد خیلی ممنون. داخل StackOverFlow هم همین الان یکی همینو گفت. :قلب:
اگر بخوام به جای پرانتز از کاراکتر دیگه هم استفاده کنم باید همینطوری بنویسم؟ مثلا به جای پرانتز باز و بسته از حروف یا هرچیزی استفاده کنم. همینطوریه؟
یک سوال دیگه هم دارم. میخوام بگم اگر داخل رشته حرف انگلیسی دید حذف کنه. مثلا رشتم مخلوطی از حروف فارسی و انگلیسی و علامتها هست من میخوام تمام حروف انگلیسی داخل رشته رو حذف کنه. البته فکر نکنم شدنی باشه.
من از Regex یا Regular Expression یا عبارات بی قاعده استفاده کردم. میتونید در موردش بخونید ، باهاش میشه خیلی کارها کرد:
http://regexone.com/
http://code.tutsplus.com/tutorials/you-dont-know-anything-about-regular-expressions-a-complete-guide--net-7869
http://code.tutsplus.com/tutorials/8-regular-expressions-you-should-know--net-6149
matarata
پنج شنبه 24 اردیبهشت 1394, 00:28 صبح
من از Regex یا Regular Expression یا عبارات بی قاعده استفاده کردم. میتونید در موردش بخونید ، باهاش میشه خیلی کارها کرد:
http://regexone.com/
http://code.tutsplus.com/tutorials/you-dont-know-anything-about-regular-expressions-a-complete-guide--net-7869
http://code.tutsplus.com/tutorials/8-regular-expressions-you-should-know--net-6149
لینکهایی که دادید خیلی مفید بود ممنون. :قلب: البته بعضی از regex ها داخل java کار نمیکنن. یک دنیا ممنون
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.