当前位置: 首页 > news >正文

Java语言程序设计基础篇_编程练习题**18.30 (找出单词)

题目:**18.30 (找出单词)

编写一个程序,递归地找出某个目录下的所有文件中某个单词出现的次数。从命令行如下传递参数:

java Exercise18_30 dirName word
  • 习题思路
  1. (读取路径方法)和18.28题差不多,把找到文件后变量计数+1改成调用读取文件单词在文件内出现的次数即可(调用读取文件方法)。Java语言程序设计基础篇_编程练习题*18.28 (非递归目录大小)-CSDN博客
  2. (读取文件方法)传入文件和单词,逐行读取文件,如果找到单词,则计数变量+1.
  3. (main方法)读取传入的路径和单词,调用读取路径方法。
  • 代码示例 

编程练习题18_30WordCount.java

package chapter_18;import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;public class 编程练习题18_30WordCount {public static void main(String[] args) throws FileNotFoundException{if(args.length != 2) {System.out.println("Usage: java 编程练习题18_30WordCount dirName word");System.exit(0);}String path = args[0];String word = args[1];File file = new File(path);int count = readPath(file, word);System.out.println("The string "+word+" appears a total of "+count+" times.");}public static int readPath(File file,String word) throws FileNotFoundException{int count = 0;ArrayList<File> files = new ArrayList<File>();files.add(file);while(!files.isEmpty()) {ArrayList<File> newList = new ArrayList<File>();for(File f : files) {if(f.isFile())count+=readFile(f, word);else {File[] fileList = f.listFiles();if(fileList != null) {for(File f2:fileList){if(f2.isDirectory())newList.add(f2);else count += readFile(f2, word);}}}}files = newList;}return count;}public static int readFile(File file,String word)throws FileNotFoundException {int count = 0;try(Scanner input = new Scanner(file)){while(input.hasNextLine()) {String line = input.nextLine();if(line.contains(word))count++;}}return count;}}
  • 输出结果 

javac 编程练习题18_30WordCount.javajava chapter_18/编程练习题18_30WordCount C:/Users/Lenovo/eclipse-workspace/JavaFX/src public

http://www.lryc.cn/news/447041.html

相关文章:

  • MyBatis中 #{} 和 ${} 的区别
  • Android Perfetto 学习
  • ES数据的删除与备份
  • 论文解读《Object-Centric Learning with Slot Attention》
  • YOLOv8+注意力机制+PyQt5玉米病害检测系统完整资源集合
  • tcp、udp通信调试工具Socket Tool
  • MedPrompt:基于提示工程的医学诊断准确率优化方法
  • 关于ollama 在mac的部署问题
  • 职业技能大赛-单元测试笔记(assertThat)分享
  • AI大模型:OpenAI o1或能成为引领AI Phenomenal Ride的LLM新范式
  • 天命人,如何轻松利用仿真技术打造出属于你的“金箍棒”?
  • 【Qt | QAction】Qt 的 QAction 类介绍
  • 写论文一定要知道的三大AI工具!5分钟完成论文初稿
  • 时装购物|时装购物系统|基于springboot的时装购物系统设计与实现(源码+数据库+文档)
  • Android——内部/外部存储
  • 计算机网络发展
  • 【后端开发】JavaEE初阶—线程的理解和编程实现
  • Matlab simulink建模与仿真 第十九章(生成C代码)
  • 遍历9个格子winmine!StepBlock和遍历8个格子winmine!StepBox的对决
  • Python中的文件编码:揭开字符世界的神秘面纱
  • Vue3使用hiprint——批次打印条码
  • 智慧城市主要运营模式分析
  • 典型的MVC设计模式:使用JSP和JavaBean相结合的方式来动态生成网页内容典型的MVC设计模式
  • Vue引入js脚本问题记录(附解决办法)
  • 数据清洗与数据治理的关系
  • 树莓派pico上手
  • TypeError: load() missing 1 required positional argument: ‘Loader‘
  • 根据软件架构设计与评估的叙述开发一套机器学习应用开发平台
  • 【隐私计算篇】利用多方安全计算MPC实现VGG16人脸识别隐私推理
  • Python 入门教程(3)基础知识 | 3.7、pass 关键字