2016-11-03 15 views
-4

これは私の先生から得た説明です:私のコードに何が間違っているのかわからない

WordCount.javaに書き込んでください。あなたのコードは、次のシグネチャを持つメソッドに入るはずです。コードをテストする独自のメインメソッドを記述することができます。

public static int countWords(String original, int minLength){} 

あなたの方法を満たすか(文字で)はminLengthを超え文中の単語の数をカウントする必要があります年生があなたの主なメソッドを無視します。たとえば、指定された最小長が4の場合、プログラムは少なくとも4文字の長さの単語だけをカウントする必要があります。

単語は1つ以上のスペースで区切られます。文字以外の文字(スペース、句読点、数字など)は存在する可能性がありますが、単語の長さには数えません。

ヒント:スペースを含まない単一の単語を保持する文字列の文字数をカウントし、句読点を無視する方法を記述します。あなたのcountWordsメソッドでは、入力文字列を単語に分割し、それぞれをあなたのメソッドに送ります。

public class WordCount { 
    public static void main(String[] args) 
    { 
     System.out.print("Enter string: "); 
     String input = IO.readString(); 
     System.out.print("Enter minimum length for letter: "); 
     int length = IO.readInt(); 
     IO.outputIntAnswer(countWords(input, length)); 
    } 
    public static int countWords(String original, int minLegth) 
    { 
     int count = 0; 
     int letterCount = 0; 
     for(int i = 0; i < original.length(); i++) 
     { 
      char temp = original.charAt(i); 
      if(temp >= 'A' && temp <= 'Z' || temp >= 'a' && temp <= 'z') 
      { 
       letterCount++; 
      } 
      else if(temp == ' '|| i == original.length()-1) 
      { 
       if(letterCount >= minLegth) 
       { 
        count++; 
       } 
       letterCount = 0; 
      } 
     } 
     return count; 
    } 
} 

私の大学は学年のプロジェクトにautograderを使用し、私は間違ったテストケースの一つになっています保つ:

は、これは私のコードです。誰かが問題の原因を把握するのに役立つことができますか?

+1

これを試したテストケースはどれですか? –

+0

[help]にアクセスし、特に[ask]を読んでください。このタイプの質問(コードダンプと「何が間違っているのか分からない」など)は話題にはなりません。 –

答えて

0

あなたのコードが最後の文字を比較できないという問題が考えられました。最後の文字の後ろにスペースが必要です。これは、javaが文字列終了にnull文字ターミネータを使用しないためです。その可能性が何をした場合、私は知らない

  Scanner sc1,sc2; 
     sc1=new Scanner(System.in); 
     String input = sc1.nextLine()+" "; 

:私は次の変更を行っている私はio.Soといくつかの問題を抱えていたようScannerクラスを使用して同じコードをエミュレートしている

String input = IO.readString()+" "; 

しかし、私は空白スペースを追加してください ""と思う文字列の最後

+0

ありがとう – Sharad

関連する問題