70٪ تخفیف ویژه جشنواره تابستانه توسینسو
پایان تخفیف تا:
مشاهده دوره‌ها
0

کنترل ورودی کاربر و پردازش متن در جاوا

با عرض سلام و ادب

من دارم رو یه برنامه کار میکنم که ورودی کاربر رو کنترل کنه

کاربر مجاز به انتخاب اعداد 0-9 و حروف a-z که ورودی از یه textfield همزمان با key pressed داده ها خوانده میشن

در اصل خروجی برنامه م کارکترهای 0-9 و a-z که کاربر از این محدوده کارکتر های دلخواه خود رو وارد میکنه که از بین اینا حذف میشه و مابقی در خروجی چاپ میشن (البته اینو مشکل ندارم )

یه پترن [a-z0-9] براش تعریف کردم

منتها مشکل من اینه که کاربر نباید بتونه همه کارکتر هارو یجا وارد کنه و اگرم وارد کرد آخرین کارکتر وارد شده حذف بشه

مثلا کاربر

01234567abcd89

وارد کرده ولی خب نباید همه ارقام رو وارد کنه و از ارقام وارد شده یکیش باید حذف بشه

پرسیده شده در 1397/09/17 توسط

5 پاسخ

0

سلامم

String num = "01234567890"

String s = "abcdqwertyuioplkjhgfszxvnm";

دو تا رشته از تمام ارقام و حروف انگلیسی رو داریم

حالا اگه در حالت عادی برنامه رو اجرا کنیم خروجی num+s میشه (همه کارکترهای بالا)

ولی کاربر میتونه تعیین کنه که یه سری از این کارIکتر ها تو خروجی چاپ نشن

مثلا کاربر میگه حروف و ارقام 123456789abcd از کارکترهای موجود حذف بشن و مابقی چاپ شه که اینم با دوتا متد درست شد

حالا مشکل من اینجاس که وختی همه ارقام رو به برنامه میدم که از لیست حذف بشن برنامه کرش میکنه چون دیگه کارکتری نیس ک حذف شه

منم میخوام تعیین کنم که کاربر نتونه همه کارکتر ها رو وارد کنه و حداقل یه کلرکتر باقی بمونه اگرم وارد کرد یکی از این کارکتر ها حذف بشه تا حداقل یه کارکتر باقی بمونه

(البته بنا به نیاز برنامه حتما باید یه کارکتر از ارقام و حروف باقی بمونه(

یه پترن ساده استفاده کردم چون هنوز خوب یاد نگرفتم

سمت کلاینت

این پترن رو استفاده کردم

[a-z} {25} برای حروف

[0-9]{8} برای ارقام

پاسخ در 1397/09/19 توسط
1

سلام

کاربر مجاز به وارد کردن چند کاراکتر است؟

منظورتون از "کاربر نباید بتونه همه کارکتر هارو یجا وارد کنه" چیست؟ (آیا از همه اعداد در عبارت استفاده نکند یا اینکه تعداد کاراکترهای عددی باید از یک مقداری بیشتر نشود یا ...)

این پترن سمت کلاینت باید چک شود یا سرور؟

پترنی که استفاده کرده اید را هم قرار دهید تا بهتر راهنمایی کنیم

پاسخ در 1397/09/18 توسط
1

سلام

برای حروف از این پترن

^#?([a-z]{1,25})$

و برای ارقام هم از این پترن

^#?([0-9]{1,8})$

استفاده نمایید

پاسخ در 1397/09/19 توسط
0

خیلی ممنون زحمت کشیدین

فقط این علامت دلار و علامت سوال چیکار میکنه?

پاسخ در 1397/09/19 توسط
1

^ : شروع ورودی را مطابقت می دهد. ولی اگر درون [^] قرار بگیرد معنی منفی پیدا می کند

$ : پایان رشته ورودی را مطابقت می دهد

? : برای مطابقت دادن 0 یا 1 بار به کاراکتر قبلی اش

[0-9] : کاراکترهای بین 0 الی 9

{1,8} : حداقل 1 و حداکثر 8 بار

() : بصورت یک گروه عناصر داخل پرانتز را در نظر می گیرد

پاسخ در 1397/09/19 توسط

پاسخ شما