我需要帮助以获取长度大于等于用户给定的最小长度的字符串数。
例如:字符串输入“ 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。

10-06 12:47