JAVA编程:给定一串字符串(英文段落),用户输入某个单词,求该单词出现的总次数,和出现在第几个位置上。

给定一串字符串(英文段落),用户输入某个单词,求该单词出现的总次数,和出现在第几个位置上。

String方法不是有indexOf方法么,对给定的英文段落字符串使用indexOf方法来寻找用户输入关键词的出现位置,找到的话总次数加1,并且将英文段落字符串从找到位置开始截断,取截断位置后面剩下的字符串再次使用indexOf方法尝试寻找下一个。循环这个过程直到找不到为止。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-06
public class Demo5 {
public static void main(String args[]){
String str="good good stary,day day up";
int sum=0;
for(int i=0;i<str.length();i++){ 
  String subStr = str.substring(i, i+1);
  int j=0;
  if(subStr.equals("d")){
  j++;
  sum+=j;
  System.out.println(subStr+"\t"+(i+1));
  }  
}
System.out.println("共出现:"+sum+"次");
}
}

追问

还有出现在第几个位置上怎么写?

追答

看错了题目是单词不是字母,等等,帮你改改

public class Demo5 {
public static void main(String args[]){
String str="good good strudy,day day up";
int sum=0;
List<Integer> list=new ArrayList<Integer>();
Map<Integer,String> map=new HashMap<Integer, String>();
String[] words=str.split(" |,");
for(int i=0;i<words.length;i++){
map.put(i,words[i]);   
}
Set  set=map.entrySet();       
Iterator   iterator=set.iterator();           
while (iterator.hasNext() ){        
    Map.Entry  mapentry = (Map.Entry) iterator.next();  
    int j=0; 
    if(mapentry.getValue().equals("good")){
     j++;
     sum+=j;
     list.add((Integer) mapentry.getKey()+1); 
    }    

System.out.println("一共出现:"+sum+";"+"位置分别是:"+list.toString());
}
}

相似回答