2014-09-12 3 views
0

자릿수 단어 기능을 쓰고 있지만 한 글자가있을 때마다 문장의 첫 단어는 계산되지 않습니다. 최소 및 최대 입력은 단어가 가질 수있는 최대 문자 및 최소 문자에 대한 것입니다. 어떤 도움이나 제안도 굉장합니다.개수 단어 개수 기능이 정확한 대답을 제공하지 않음

public static int countWords (String word, int min, int max) 
{ 
    int WordCount = 0; 
    int CharacterCount = 0; 
    int StringLength = word.length(); 
    int n = 0; 

    while (StringLength > 0) 
    { 
     if (Character.isLetter(word.charAt(n))) 
     { 
      CharacterCount = CharacterCount + 1; 
     } 
     else 
     { 
      if (CharacterCount >= min && CharacterCount <= max) 
      { 
       WordCount = WordCount + 1; 
      } 
      else 
      { 
       WordCount = WordCount; 
      } 
     CharacterCount = 0; 
     } 
    n = n + 1; 
    StringLength = StringLength - 1; 
    } 
return WordCount; 
} 
+0

인수로 사용되는 값은 무엇입니까? 인수 및 WordCount의 전형적인 예를 보여줍니다. –

+0

현재 막 붙잡고있는 단어는 countWords ("abc", 1, 1)입니다. 단 두 단어 만 있고, a 만 입력하면 0이되므로 어떤 이유로 첫 단어는 단지 문자 일뿐입니다. –

+0

당신은 문자열의 끝에 마지막 단어를 추가하는 것을 잊어 버린 것처럼 들릴 수도 있습니다. 추신 : 'else {WordCount = WordCount}'는 불필요합니다. 그것을 잃어라 :) – FoggyDay

답변

0

불필요한 else 블록을 제거하고 while 루프의 끝에 if을 추가하십시오. 문제는 최종 단어가 올바르게 계산되지 않았다는 것입니다.

public class WordCount { 

    public static int countWords (String word, int min, int max) 
    { 
     int WordCount = 0; 
     int CharacterCount = 0; 
     int StringLength = word.length(); 
     int n = 0; 

     while (StringLength > 0) 
     { 
      if (Character.isLetter(word.charAt(n))) 
      { 
       CharacterCount = CharacterCount + 1; 
      } 
      else 
      { 
       if (CharacterCount >= min && CharacterCount <= max) 
       { 
        WordCount = WordCount + 1; 
       } 
       CharacterCount = 0; 
      } 
      n = n + 1; 
      StringLength = StringLength - 1; 
     } 
     if (CharacterCount > 0) { 
      WordCount++; 
     } 

     return WordCount; 
    } 

    public static void main(String[] args) { 
     System.out.println(countWords("a b c", 1, 1)); 
     System.out.println(countWords("This is a string", 1, 100)); 
    } 
} 
+0

도움을 주셔서 감사합니다! –

+0

당신은 오신 것을 환영합니다. 재미있어! –

0

입력이 단지 하나의 문자이며, 다음은 오직

WordCount 여전히 0

에 남아 CharacterCount 1에 설정, if 문 첫 번째로 들어갑니다, 실제로 편지 인 경우

else은 필요합니까?

+0

아니, else 문은 필요하지 않지만, 나는 단지 거기에 어떤 이상한 이유가 있기를 좋아한다. –