一、运行效果
二、思路
- 准备好一个存放英文文章的
.txt
文件。 - 逐行读取文件。
- 统计数量:
- 句子数:以
.
,!
,或?
结尾。 - 段落数:不是空行,那么就是一个段落。
- 单词数:统计空格数(连续的空格只算一个),单词数等于空格数加一。
感觉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.