"معلومه چون به قول خودتون اگه کلمه یک حرفی باشه"
خب بعدیش هم به قول خودم میگفتید دیگه. در اصل مثلا راهنمایی کردم در حد جواب! اونجا که گفتم تو تابع indexOf(word, index+word.length( ).
خب شما ببینید تابع indexOf دو آرگومان داره. اولی که مشخصه، دومی indexfrom هست. یعنی از اینجای رشته شروع کن به جستجو. اگر index=0 باشه، محل شروعش میشه 0+word.length که از اول رشته سرچ نمیکنه. پس مقدار اولیه رو -word.length میذاریم تا وقتی با word.length جمع شد، بشه صفر. دیگه از صفر شروع میکنه. هر کلمه ای که پیدا کرد، به اندازه طول رشته میره جلو و از اونجا دنبال بعدیش میگرده.
راستی راهی نیست که به جای خود کلمه متغییری که دارای اون هست رو استفاده کنیم؟
اگه تعداد مواردی که باید جست وجو شه زیاد باشه نوشتن این کد برای همش کار جالبی نیست!
منظورتون رو دقیق نفهمیدم. من الان اومدم از همون متغیر استفاده کردم دیگه، خود کلمه رو که مستقیم ننوشتم. اگه منظورتون رو درست فهمیده باشم، خب میتونید به صورت یک متد یا همون تابع بنویسید هر وقت خواستید استفاده کنید. کلا بعید میدونم method منظورتون باشه، ولی خب برای محکم کاری :
public int find(String word,String expression){
int index=-word.length();
int found=-1;
do{
found++;
index=expression.indexOf(word, index+word.length());
}while(index!=-1);
return found;
}