2017-10-21 41 views
0

私は、Googleのいくつかのソリューションの助けを借りてコードを書いています。 whileループの詳細を教えてください。文字列と部分文字列とメイン文字列に含まれる部分文字列の数

import java.util.Scanner; 

public class TwoStringsWordRepeat { 
    public static void main(String[] args) { 
     Scanner s = new Scanner (System.in); 
     System.out.print("Enter Sentence: "); 
     String sentence = s.nextLine(); 
     System.out.print("Enter word: "); 
     String word = s.nextLine(); 
     int lastIndex = 0; 
     int count = 0; 
     while (lastIndex != -1) { 
      lastIndex = sentence.indexOf(word, lastIndex); 
      if (lastIndex != -1) { 
       count++; 
       lastIndex += word.length(); 
      } 
     } 
     System.out.println(count); 
    } 
} 

私に、whileループ.indexOf();内のコードを説明します。

+0

のindexOf()はURSのコードブロックで使用される変数の通りlastIndex' '位置から検索を開始し、sentence'' 'にword'の最初の発生を見つけます。 – Adarsh

答えて

0

sentence.indexOf(word,lastIndex);の最後見つかったのoccuranceの終わりにserachを開始されている場合は、指定したインデックスlastIndexから始めて、文字列wordのインデックスを返します。それ以外の場合は、与えられたlastIndex

から始まる与えsentencewordを検索します-1

を返します。コード内のコメントを追加しました。

// While we are getting the word in the sentence 
// i.e while it is not returning -1 
while(lastIndex != -1) { 
    // Will get the last index of the searched word 
    lastIndex = sentence.indexOf(word, lastIndex); 

    // Will check whether word found or not 
    if(lastIndex != -1) { 
     // If found will increment the word count 
     count++; 
     // Increment the lastIndex by the word lenght 
     lastIndex += word.length(); 
    } 
} 

// Print the count 
System.out.println(count); 
0

indexOf()は、検索文字列内の指定された部分文字列の最初の出現のオフセット、またはそれぞれの文字列が見つからない場合は-1を返します。

代替構文を使用すると、指定されたオフセットで検索を開始し、その特定の開始オフセットの後に一致するものだけを見つけることができます。

wordが、それは別の反復を行います見つかりましたが、右word

関連する問題