【问题标题】:how can I count number of words from each paragraph from the file in my code java?如何计算我的代码java中文件中每个段落的单词数?
【发布时间】:2021-10-24 07:19:09
【问题描述】:

您能帮我在这段代码中添加一个额外的检查,以帮助我找到每个段落的字数吗?

在此处输入代码

String path = "C:/CT_AQA - Copy/src/main/resources/file.txt";

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(path)));

String line = " ";
int countWord = 0;
int sentenceCount = 0;
int characterCount = 0;
int paragraphCount = 1;
int countNotLetter = 0;
int letterCount = 0;
int wordInParagraph = 0;

while ((line = br.readLine()) != null) {
    if (line.equals("")) {
       paragraphCount++;
    } else {
        characterCount += line.length();
        String[] wordList = line.split("\\s+");
        countWord += wordList.length;
        String[] sentenceList = line.split("[!?.:]+");
        sentenceCount += sentenceList.length;
        String[] letterList = line.split("[^a-zA-Z]+");
        countNotLetter += letterList.length;
    }

    letterCount = characterCount - countNotLetter;
}
br.close();
System.out.println("The amount of words are " + countWord);
System.out.println("The amount of sentences are " + sentenceCount);
System.out.println("The amount of paragraphs are " + paragraphCount);
System.out.println("The amount of letters are " + letterCount);

} 爪哇

【问题讨论】:

    标签: java


    【解决方案1】:

    段落中的总字数应与所有行中wordCount 的总字数相同。

    如果必须计算每段的字数,那么wordsInParagraph应该是整数列表List<Integer> wordsPerParagraph,可以这样计算:

    int wordInParagraph = 0;
    List<Integer> wordsPerParagraph = new ArrayList<>();
    
    while ((line = br.readLine()) != null) {
        if (line.equals("")) {
           paragraphCount++;
           wordsPerParagraph.add(wordInParagraph);
           wordInParagraph = 0;
        } else {
            characterCount += line.length();
            String[] wordList = line.split("\\s+");
            countWord += wordList.length;
            wordInParagraph += wordList.length; // !!!
    
            String[] sentenceList = line.split("[!?.:]+");
            sentenceCount += sentenceList.length;
            String[] letterList = line.split("[^a-zA-Z]+");
            countNotLetter += letterList.length;
        }
    
        letterCount = characterCount - countNotLetter;
    }
    // in case the last paragraph does not have trailing empty line
    if (wordInParagraph != 0) {
       wordsPerParagraph.add(wordInParagraph);
    }
    

    【讨论】:

      猜你喜欢
      • 2020-11-16
      • 2020-10-26
      • 2014-04-13
      • 1970-01-01
      • 2019-04-05
      • 1970-01-01
      • 2011-07-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多