2017-12-05 11 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()도 마찬가지입니다.