2016-12-22 11 views
3

私は、ユーザにキーワードとエッセイを入力し、エッセイで使用されたキーワードの数を確認するプログラムを作成しています。文字列にキーワードが含まれているかどうかを確認するにはどうすればよいですか?

電流出力:


キーワードを入力します。

犬、猫

がエッセイを入力します。

私はスレッド "メイン" Javaで猫

例外が好きです。 lang.RuntimeException


所望の出力:


キーワードを入力します。

犬、猫

はエッセイを入力します。

私は

猫が好きここで

は、これまでの私のコードです:

static int keywordsChecker(String shortEssay, String keywords) { 
     int count = 0; 

     for (int i = 0; i < keywords.length(); i++) { 

      String[] ary = keywords.split(","); 

      if (shortEssay.contains(ary)) { 
       count++; 
      } 
      System.out.println(count); 


     } 
     return count; 
    } 

    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 
     System.out.println("Enter keywords: "); 
     String keyword = input.nextLine(); 
     System.out.println("Enter essay: "); 
     String essay = input.nextLine(); 
     keywordsChecker(essay, keyword); 

    } 
+3

これはコンパイルされません。 – shmosel

+0

キーワード配列を繰り返し、各エントリに 'contains'チェックを行います。 – Jobin

答えて

0

:あなたがメソッドを呼び出したときに

static int keywordsChecker(String shortEssay, String keywords) { 
    int count = 0; 
    for (String keyword : keywords.split(",")) { 
     if (shortEssay.contains(keyword.trim()) { 
      count++; 
     } 
    } 
    return count; 
} 

今、あなたは戻り値を印刷する必要がありますあなたのコードは次のようになります:

static int keywordsChecker(String shortEssay, String keywords) { 
    int count = 0; 
    String[] ary = keywords.split(","); 

    for (int i = 0; i < ary.length; i++) {    

     if (shortEssay.contains(ary[i])) { 
      count++; 
     } 
    } 
    return count; 
} 

public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 
    System.out.println("Enter keywords: "); 
    String keyword = input.nextLine(); 
    System.out.println("Enter essay: "); 
    String essay = input.nextLine(); 
    System.out.println(keywordsChecker(essay, keyword)); 

} 
0

はこれを試してみてください:

int count = keywordsChecker(essay, keyword); 
System.out.println(count); 
2

これはあなたのアプローチする必要があります:

  1. keywords.split(",");を使ってキーワードを分割します。
  2. 手順1で取得したキーワード配列をループします。
  3. アレイの各値がshortEssay文字列で使用可能かどうかを確認してください。shortEssay.contains(ary[index])を使用してください。それが利用可能なら
    1. は、その後、他の1
    2. continueループによってcount変数をインクリメント。
  4. count変数を印刷して返します。

だから、あなたのkeywordsChecker方法は次のようになります。

static int keywordsChecker(String shortEssay, String keywords) { 
    int count = 0; 
    String[] ary = keywords.split(","); 

    for (int i = 0; i < ary.length; i++) { 
     if (shortEssay.contains(ary[i])) { 
      count++; 
     } 
    } 
    System.out.println(count);  
    return count; 
} 
+0

これは解説付きの唯一の解答です。 – Thrasher

+0

これは、i user7329039

+0

@ user7329039 'str.length()'メソッドは、文字列に対して使用するときに使用できます。この例では、配列を使用していますので、代わりに 'ary.length'プロパティを使用してください。 –

2
static int keywordsChecker(String shortEssay, String keywords) 
{ 
    int count = 0; 
    String[] ary = keywords.split(","); 
    for (int i = 0; i < ary.length; i++) { 
     if (shortEssay.contains(ary[i])) { 
       count++; 
     } 
    } 
    return count; 
} 

ちょうどあなたがこのメソッドを呼び出すと、あなたのキーワード数を取得する必要があります。 :)

関連する問題