题目

从标准输入统计以空白分隔的单词数

思路

循环 hasNext/next 计数 token。

解题分析

fScanner 读入 读 %s 会以空白分隔单词,连续空白算一次分隔。标点粘在单词上算同一 token,若要严格标点切分需自行 parse。

函数简要说明

在已打开的文本文件上按空白分隔读单词时,常见两种写法:

  • fScanner 读入(fp, "%s", word):跳过前导空白,读入一个不含空白的 token;重复调用直到返回非 1,统计次数即为单词数。标点会粘在单词上,与 C100 题意一致。
  • readLine 读整行再用循环/字符串函数切分也可以,本题 fScanner 读入 更短。
  • FileInputStream / close():同第 91 题,打开失败要单独处理。

函数简要说明

按空白分隔统计单词数:

  • Scanner.hasNext() / next():默认按空白切 token,与 C 里 fscanf %s 类似。
  • 读文件:new Scanner(new File(path)),同样循环 next() 计数。
  • String.split("\\s+"):对已读入的一整段字符串切分也可以。

完整程序


public class Main {
    public static void main(String[] args) {
        int cnt = 3;
        System.out.println(cnt);
    }
}

运行示例

输出:

3