PDA

View Full Version : جستجوی یک زیر رشته داخل یک رشته



y.saba
جمعه 20 دی 1387, 23:26 عصر
سلام
نه خسته ....

می خواهم متن داخل textfield رو در textarea ببینم هست یا نه ؟؟
چطوری میشه
تابعی داره یا باید کاراکتر به کاراکتر search کنم ؟؟؟


چه جوری میشه یه متن رو داخل textarea مارک کنم ؟؟؟؟


ممنون
خسته نباشید .....

manvaputra
شنبه 21 دی 1387, 10:03 صبح
سلام دوست عزیز این کد کارتو راه می ندازه سوالی داشتی بپرس:


String maintext = jTextArea1.getText().trim();
String subtext = jTextField1.getText().trim();
boolean find = false;

int max = maintext.length() - subtext.length();

test:
for (int i = 0; i <= max; i++) {
int n = subtext.length();
int j = i;
int k = 0;
while (n-- != 0) {
if (maintext.charAt(j++)!= subtext.charAt(k++)) {
continue test;
}
}
find = true;
break test;
}

if (find==true){
jLabel2.setText("find it");
}else{
jLabel2.setText("didn't find it");
}

alaaaa
شنبه 21 دی 1387, 12:09 عصر
فکر کنم راه ساده تری هم باشه :

اگه new line تو textArea برات مهمه از کد زیر استفاده کن




if(jTextArea1.getText().indexOf(jTextField1.getTex t()) >=0 )
\\can find


ولی اگه فقط نوشته های موجود تو textArea مهمه از کد زیر





if(jTextArea1.getText().replaceAll("\n","").indexOf(jTextField1.getText()) >=0 )
\\can find


در واقع تفاوت این دوتا تو اینکه در دومی کاراکتر newline رو از متن textArea پاک میکنه و چیزی میمونه که می بینیم

y.saba
یک شنبه 22 دی 1387, 17:58 عصر
بچه ها ممنون
ولی ببینید میتونید مارک کردن از طریق کد داخل یه textarea رو بهم بگید ؟




textArea.setSelectionStart(0)
( textArea.setSelectionEnd(7

(textArea.setSelectionColor(Color.blue

alaaaa
یک شنبه 22 دی 1387, 18:46 عصر
تا اونجایی که من فهمیدم کدی که گفتی فقط زمانی عمل می کنه که تو event هایی فراخوانی بشه که jTextArea از حالت active خارج نشه

مثلا تو اکثر event های خود jTextArea و یا تو منوها این کار میشه ولی مثلا نمی تونی این کار رو با click یک دکمه انجام بدی

y.saba
پنج شنبه 03 بهمن 1387, 21:00 عصر
بچه ها شرمنده از همکاری تون هم یه دنیا ممنون

می گم این search فقط اولین ایندکس و بر می گردونه

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

یه بار دیگه اومدم با scanner کلمه به کلمه سرچ کردم نشد .

میشه کمکم کنید تا اگه کلمه یا کلماتی بعد از اون بود درست جواب بده ؟؟؟