2015-01-22 6 views
-6

그래서 여기 .. ​​내가 시도 MW 코드의 불완전 당신은 String.split()을 사용할 수 있습니다배열을 사용하여 java에서 문장의 단어 수를 계산하는 방법은 무엇입니까?

import java.util.Scanner; 

public class Q5 { 

    public static void main(String[] args) { 

     Scanner input=new Scanner(System.in); 
     char size; 
     char[] sentence; 
     int vowelcounter=0, wordcounter=0; 
     System.out.print("Please enter a line of text: "); 


     for(int i=0;i<size;i++) 
     { 
      if(sentence[i]=='a' || sentence[i]=='e'|| 
       sentence[i]=='o' || sentence[i]=='i'|| 
       sentence[i]=='u'); 
      { 
       vowelcounter++; 
      } 
      if(sentence[i]==32) 
      { 
       wordcounter++; 
      } 
     } 
     System.out.print("The number of words is: "+wordcounter); 
     System.out.print("The number of vowels is: "+vowelcounter); 
    } 
} 
+1

당신은 사용자 입력 아무것도주지 않을 :

Testing this program 

나는 출력을 얻을. – forgivenson

+3

질문을 향상 시키십시오. 먼저, "여기 막연한 요구 사항이 있습니다. 여기에 불완전한 코드가 있습니다. 잘못된 점을 알려주지 않을 것입니다."보다는 구체적인 질문을 먼저하십시오. 첫째, [둘러보기] 및 [도움말] 섹션을 통해 무엇이 좋은 질문이되는지 확인하십시오. –

+3

그냥 머리를 위로 : 첫 번째 블록 다음에';'가 있는데, 이는 거의 틀림없이 오류입니다. – Mshnik

답변

0

.. .. 저를 수정하시기 바랍니다. 구분자를 기준으로 String을 개의 개체로 나눕니다.

String[] sentenceWords = sentence.split(" "); 

은 그럼 그냥 또한 모음을 계산하기위한 코드가 잘못 협조 할 수 있어야 배열

int wordCount = sentenceWords.length; 

의 크기를 확인합니다. 단어 자체를 비교하는 것이 아니라 모든 단어의 모든 문자를 확인하고 모음인지 확인해야합니다. 당신은 수행하여 단어를 반복 할 수

for (String s : words) { 

    } 

는 그런 캐릭터가

if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') { 
    vowelCount++; 
} 

전체 예는 모음 인 경우

for (int i = 0; i < s.length(); i++) { 
    char ch = s.charAt(i); 

} 

그런 다음 확인 각 단어의 각 문자를 반복 :

public static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 

public static void main(String[] args) throws Exception { 

    String input = br.readLine(); 
    String[] words = input.split(" "); 
    System.out.println("Words in the setence: " + words.length); 

    int vowelCount = 0; 
    for (String s : words) { 
     for (int i = 0; i < s.length(); i++) { 
      char ch = s.charAt(i); 
      if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') { 
       vowelCount++; 
      } 
     } 
    } 

    System.out.println("Number of vowels in sentence: " + vowelCount); 

} 

그리고 입력 :

Words in the setence: 3 
Number of vowels in sentence: 5 
+0

다르게 할 수 있는지 궁금 해서요. 예를 들어 C++에서 cin.getline을 사용합니다 ... 자바에서 getline 메소드와 동등한 기능이 있습니까? –

+0

이것이 바로'br.readLine();'의 기능입니다. 독자는 입력 스트림 (이 경우에는 콘솔)을 모니터하도록 선언하고,'br.readLine();을 호출하면 입력 스트림에서 다음 행을 읽습니다. 스트림에 아무것도없는 경우, 사용자가 스트림에 무엇인가를 입력 할 때까지 대기합니다. –

관련 문제