2017-12-05 16 views
-4

私はJavaにちょっと新しく、メソッドの使い方などは教えてください。しかし、私はいくつかのcharAtものを知っているので、誰も私が単語の量を見つけるのを助けることができる、そして各単語の平均、私は最初の部分をした。ここに私のコードです。見積もりをして、各単語の文字数、単語数、平均値を表示してください。

import java.util.Scanner; 
public class FavouriteQuote { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     String sQuote; 
     int counter = 0; 

     Scanner input = new Scanner (System.in); 
     System.out.print("Enter one of your favourite quotes: "); 
     sQuote = input.nextLine(); 
     input.close(); 

     for (int i = 0; i < sQuote.length(); i ++) { 
      counter ++; 
     } 
     System.out.println(counter); 
    } 

} 
+0

おそらく、文字列クラスのsplit()メソッドは単語の検索に役立ち、ハッシュマップの単語カウントに役立ちます。しかし、私はあなたが一度だけユーザーからの入力を求めているので、各単語の平均が何であるか混乱しているので、単語の平均は単語数になります。 –

+0

新しい場合は、本当に役に立ちました。 Stringクラスには、必要なものがあります。https://docs.oracle.com/javase/7/docs/api/java/lang/String.html – DigitalNinja

+0

@RAZ_Muh_Taz OPがASCII文字のみを処理していることがわかっている場合、 intの配列は、HashMapよりも扱いが簡単です。しかし、私は地図がより大きなCharSetのために使用する正しいものであることに同意する –

答えて

0

平均何が必要ですか?見積りの平均単語長は? その後、あなたのコードは次のようになります。

... 
    input.close(); 

    System.out.println("Characters in quote:" + sQuote.length()); 

    String[] words = sQuote.split("\\s"); 
    // or 
    // String[] words = sQuote.split(" "); 

    System.out.println("words in quote:" + words.length); 

    int totalWordsLength =0; 
    for (String word: words) 
    { 
     totalWordsLength = totalWordsLength + word.length(); 
    } 
//or with loop counter 
//  for (int i=0; i < words.length; i++) 
//  { 
//   totalWordsLength += words[i].length(); 
//  }  

    System.out.println("average word length in quote:" + (totalWordsLength/ words.length)); 

に注意してください:ここでの平均は、それが除算結果の整数部分のみとなりますintです。つまり11/3 = 3 BTW(質問の別) - あなたのforループは必要ありません。それは意味をなさない。 counter = sQuote.length()も同じです。

関連する問題