【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 Apache Maven
Java百项管理之新闻管理系统 熟悉java语法——大学生作业 有源码!!!可运行!!!
文章提供了使用Apache POI库在Java中创建和读取Excel文件的详细代码示例,包括写入数据到Excel和从Excel读取数据的方法。
59 6
Java百项管理之新闻管理系统 熟悉java语法——大学生作业 有源码!!!可运行!!!
|
28天前
|
存储 安全 Java
从入门到精通:Java Map全攻略,一篇文章就够了!
【10月更文挑战第17天】本文详细介绍了Java编程中Map的使用,涵盖Map的基本概念、创建、访问与修改、遍历方法、常用实现类(如HashMap、TreeMap、LinkedHashMap)及其特点,以及Map在多线程环境下的并发处理和性能优化技巧,适合初学者和进阶者学习。
42 3
|
3月前
|
前端开发 Java 编译器
【前端学java】java基础练习缺少项目?看这篇文章就够了!(完结)
【8月更文挑战第11天】java基础练习缺少项目?看这篇文章就够了!(完结)
40 0
|
26天前
|
存储 安全 Java
从入门到精通:Java Map全攻略,一篇文章就够了!
【10月更文挑战第19天】本文介绍了Java编程中重要的数据结构——Map,通过问答形式讲解了Map的基本概念、创建、访问与修改、遍历方法、常用实现类(如HashMap、TreeMap、LinkedHashMap)及其特点,以及Map在多线程环境下的使用和性能优化技巧,适合初学者和进阶者学习。
44 4
|
1月前
|
Java 编译器 Android开发
java作业的提交规范与要求
java作业的提交规范与要求
25 0
|
3月前
|
存储 前端开发 JavaScript
【前端学java】一篇文章带你精通java 中的数组(10)
【8月更文挑战第10天】一篇文章带你精通java 中的数组
17 3
【前端学java】一篇文章带你精通java 中的数组(10)
|
3月前
|
JavaScript 前端开发 Java
java高质量数据流概念讲解,保证一篇文章帮助你搞懂概念!
【8月更文挑战第11天】java高质量数据流概念讲解,保证一篇文章帮助你搞懂概念!
30 0
java高质量数据流概念讲解,保证一篇文章帮助你搞懂概念!
|
3月前
|
缓存 前端开发 JavaScript
一篇文章助你搞懂java中的线程概念!纯干货,快收藏!
【8月更文挑战第11天】一篇文章助你搞懂java中的线程概念!纯干货,快收藏!
36 0
一篇文章助你搞懂java中的线程概念!纯干货,快收藏!
|
3月前
|
前端开发 Java 编译器
【前端学java】java基础练习缺少项目?看这篇文章就够了!(17)
【8月更文挑战第11天】java基础练习缺少项目?看这篇文章就够了!
35 0
【前端学java】java基础练习缺少项目?看这篇文章就够了!(17)