我需要帮助以获取长度大于等于用户给定的最小长度的字符串数。
例如:字符串输入“ this is a game” minlength =2。该句子中3个单词的长度大于等于minLength,因此输出应为3。由于3个单词大于等于minLength
我面临输出问题。我输入了一个字符串,将其拆分为单个单词,然后将其发送给计算输出的方法。上述示例的期望值为3,但我得到1,1,1。
public class WordCount {
/**
* @param args
*/
public static String input;
public static int minLength;
public static void Input() {
System.out.println("Enter String: ");
input = IO.readString();
System.out.println("Enter minimum word length: ");
minLength = IO.readInt();
}
public static void Calc() {
Input();
String[] words = input.split(" ");
for (String word : words) {
LetterCount(word);
}
}
public static int LetterCount(String s) {
int countWords = 0;
if (s.length() >= minLength) {
countWords += 1;
IO.outputIntAnswer(countWords);
}
return countWords;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Calc();
}
}
最佳答案
你很亲密!
您为每个单词调用LetterCount,并在LetterCount的开头将countWords设置为0。因此,每次都会重置计数器!
在您的类中,countWords不能作为LetterCount的局部变量,而应作为私有变量。
地点
private static int countWords = 0;
在文件的顶部。
去掉
int countWords = 0;
来自LetterCount。