题目
从标准输入统计以空白分隔的单词数
思路
循环 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