【java作业一】统计英文文章的段落、句子、字符数

简介: 一、运行效果

一、运行效果

image.png

二、思路

  1. 准备好一个存放英文文章的.txt文件。
  2. 逐行读取文件。
  1. 统计数量:
  1. 句子数:以.!,或?结尾。
  2. 段落数:不是空行,那么就是一个段落。
  3. 单词数:统计空格数(连续的空格只算一个),单词数等于空格数加一。

感觉try-catch错误捕捉好麻烦,代码看起来比较乱,但是不try它又不让我跑。

三、实现

文件目录结构

- Main.java
- t.txt

代码

import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
import java.util.Scanner;
import java.io.IOException;
public class Main{
    public static void main(String[] args){
        int jz = 0;  // 句子数
        int dl = 0;  // 段落数
        int dc = 0;  // 单词数
        try{
            Scanner in = new Scanner(Path.of("t.txt"), StandardCharsets.UTF_8);
      // 逐行读取文件
            for (int i = 0; i < 1234567890; i ++) {
                try {
                    String s = in.nextLine();
                    // 1. 段落 --> 不是空行
                    if (s.length() > 0) {
                        dl++;
                        dc++;
                    }
          // 遍历一行
                    // 2. 句子 --> 句点,问号,感叹号的数量
                    // 3. 单词 --> 前有单词的空格数 + 1 (排除连续的空格)
                    for (int j = 0; j < s.length(); j++) {
                        char c = s.charAt(j);
                        if (c == '.' || c == '?' || c == '!') {
                            jz++;
                        }
                        if (c == ' ') {
                            char c_2 = s.charAt(j - 1);
                            if (c_2 != ' ') {
                                dc++;
                            }
                        }
                    }
                } catch(Exception e) {
                    System.out.println("文件读完了");
                }
            }
        } catch (IOException e) {
            System.err.println("Failed to open file: " + e.getMessage());
        }
        System.out.println("单词数:" + dc);
        System.out.println("句子数:" + jz);
        System.out.println("段落数:" + dl);
    }
}

四、附录:一段英文

“Get more done by doing this!” “Do this and be more productive!” These are common headlines in the productivity space.
As a contrarian, I usually feel like I need to do the opposite when I see everyone doing something. Now, that’s not always a smart thing to do.
But when it comes to career, business, and productivity, it usually pays off if you do what’s counterintuitive.

相关文章
|
1月前
|
前端开发 Java 编译器
【前端学java】java基础练习缺少项目?看这篇文章就够了!(完结)
【8月更文挑战第11天】java基础练习缺少项目?看这篇文章就够了!(完结)
30 0
|
1月前
|
存储 前端开发 JavaScript
【前端学java】一篇文章带你精通java 中的数组(10)
【8月更文挑战第10天】一篇文章带你精通java 中的数组
12 3
【前端学java】一篇文章带你精通java 中的数组(10)
|
1月前
|
JavaScript 前端开发 Java
java高质量数据流概念讲解,保证一篇文章帮助你搞懂概念!
【8月更文挑战第11天】java高质量数据流概念讲解,保证一篇文章帮助你搞懂概念!
24 0
java高质量数据流概念讲解,保证一篇文章帮助你搞懂概念!
|
1月前
|
缓存 前端开发 JavaScript
一篇文章助你搞懂java中的线程概念!纯干货,快收藏!
【8月更文挑战第11天】一篇文章助你搞懂java中的线程概念!纯干货,快收藏!
27 0
一篇文章助你搞懂java中的线程概念!纯干货,快收藏!
|
1月前
|
前端开发 Java 编译器
【前端学java】java基础练习缺少项目?看这篇文章就够了!(17)
【8月更文挑战第11天】java基础练习缺少项目?看这篇文章就够了!
26 0
【前端学java】java基础练习缺少项目?看这篇文章就够了!(17)
|
1月前
|
Java
Java 新手入门:重载和重写傻傻分不清?一篇文章带你清晰理解!
Java 新手入门:重载和重写傻傻分不清?一篇文章带你清晰理解!
31 0
Java 新手入门:重载和重写傻傻分不清?一篇文章带你清晰理解!
|
1月前
|
Java
Java——编码GBK的不可映射字符
Java——编码GBK的不可映射字符
28 1
|
27天前
|
存储 Java Apache
|
1月前
|
存储 算法 Java
LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
18 0