我正在写一个计数词函数,但是每次只有一个字母时,它不会计算句子中的第一个单词。最小输入和最大输入用于单词所能达到的最大字符和最小字符。任何帮助或建议都会很棒。
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;
}发布于 2014-09-12 02:35:02
删除不必要的another块,并在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) );
}
}发布于 2014-09-12 02:32:30
如果输入只是一个字符,并且实际上是一个字母,那么您将只输入第一个If语句,将CharacterCount设置为1。
WordCount仍将保持在0
else是必要的吗?
https://stackoverflow.com/questions/25799765
复制相似问题