去除文本文件中的标点符号,然后计算奇数和偶数长度的单词

Removing Puncuation Marks off a text file and then calculating odd and even length words

到目前为止,我在代码中做了很多工作。我替换了文本文件中的标点符号,但我不知道如何找到偶数和奇数长度的单词并将它们添加到它们的计数中。所以:我的这个文件的字数是 114 个字,但是这个程序 returns 50 个偶数字和 55 个奇数字加起来没有达到我的 114 个字数,所以显然有问题。

       BufferedReader file3 = new BufferedReader(new FileReader("sonnet1-b.txt"));

        int even = 0;
        int odd = 0;
        String lines;
        String processedLine = "";

//这个变量以后会不会有更大的用途还不清楚

        ArrayList<String> words = new ArrayList<>();

        while ((lines = file3.readLine()) != null) {
            processedLine = lines.replaceAll("'", "").replaceAll("[^a-zA-Z]", " ").replaceAll("( )+", " ");

//我把这里的词删掉了,把split改成了space上的split。当我 运行 你的原始代码时,整个文本作为一行出现。我认为您原来的问题可能出在这方面。你需要得到单词的长度。您是原始拆分参数,每个参数只放入 spaces。

            String[] each = processedLine.split(" ");
            for (String str1 : each) {

//根据你的描述,需要检查str1的长度,不是每个都检查

                if (!(str1.length() % 2 == 0)) {
                    odd++;
                } else {
                    even++;
                }
            }
        }                               
        System.out.println("There were " + even + " even words, and " + odd + " odd words"); 

偶数58个,奇数56个