2015-12-07 226 views
-4

我想創建一個程序,它將能夠搜索用戶輸入字符串的特定單詞,並計算單詞重複的次數。如何在另一個字符串中搜索字符串

例如,我想程序,以充當這樣的:

請輸入您所選擇的字符串:

基洛納是一個很好的城市,基洛納是我的家。

輸入您想搜索一個詞:

基洛納

字基洛納發現的2倍。

我該如何去做這件事?我最初的方法是使用循環,但這並沒有讓我太過分。

這是我到目前爲止有:

import java.util.Scanner; 

public class FinalPracc { 
    public static void main(String[] args) { 
     Scanner s1 = new Scanner(System.in); 
     System.out.println("please enter a string of you choice: "); 
     String a = s1.nextLine(); 
     System.out.println("Please enter the word you would like to search for: "); 
     String b = s1.nextLine(); 

     int aa = a.length(); 
     int bb = b.length(); 

     if (a.contains(b)) { 
      System.out.println("word found"); 
      int c = a.indexOf(b); 
      int 
      if (
     } 
    } 
    /* ADD YOUR CODE HERE */ 
} 
+1

問題是什麼? –

+0

我所知道的只會計算單詞是否使用過一次,我希望程序能夠計算單詞總數的重複次數。那有意義嗎?對不起,混淆 –

+0

基洛納被高估。 – redFIVE

回答

1

也許是這樣,而(a.contains(B)) ,每一個字被發現時設立一個計數器,切一切,直到每循環一次發現的單詞的最後一個符號。

+0

聰明的人哈哈....我會給你一個鏡頭,讓你知道它是怎麼回事。不相信,我不相信!謝謝 –

+0

沒有問題;-)有時你陷入一個想法,一些快速新鮮的外觀可以解決它。這就是爲什麼我們在這裏!編寫隊友的樂趣! –

+0

Soo我試過while循環,它看起來像這樣... –

3

一種方法是,如果你發現這個詞,修改搜索字符串刪除之前的一切和包括單詞,然後再進行搜索:

public static void main(String[] args) { 

    Scanner s1=new Scanner(System.in); 
    System.out.println("please enter a string of you choice: "); 
    String a=s1.nextLine(); 
    System.out.println("Please enter the word you would like to search for: "); 
    String b=s1.nextLine(); 

    int count = 0; 
    while(b.contains(a)) { 
     count++; 
     int pos = b.indexOf(a); 
     b = b.substring(pos + a.length()); 
    } 

    if (count > 0){ 
     System.out.println("word found " + count + " times"); 
    } else { 
     System.out.println("word not found"); 
    } 
} 

編輯:另外,如果你不這樣做想要在循環中調用子字符串,可以使用indexOf的形式,該形式爲搜索使用起始索引。在這種情況下,您的循環可能如下所示:

int count = 0; 
    int searchIndex = 0; 
    while((searchIndex = b.indexOf(a, searchIndex)) > -1) { 
     count++; 
     searchIndex += a.length(); 
    } 
相關問題