Java Programming作业:文件IO,统计文件中的行数单词数及字符数,统计某个给定字母的出现次数

题目:给定文件"an_interesting_story.txt",实现以下两个功能:
① 仿照如下格式,输出文件中的行数、单词数及字符数(注意,空格、标点符号及其他特殊字符也算作字符,回车换行不算在内):

在这里插入图片描述

② 统计某个给定字母的出现次数。如提示用户输入某个字母,若用户输入字母"a",则返回文件中字母a的出现次数。若用户输入特殊字符,则通过异常处理,提示用户输入出错,并重新进行输入直至正常。

package package1;

import java.util.*;
import java.io.*;

class inputException extends Exception {
	public inputException() {
	}

	public inputException(String mes) {
		super(mes);
	}
}

public class Practice10 {

	public static Scanner input = new Scanner(System.in);

	public static void main(String[] args) throws FileNotFoundException, inputException {
		// Scanner input = new Scanner(System.in);
		System.out.println("请输入想要打开的文本文件:");
		String txt = input.nextLine();
		File file = new File(txt);
		int con = 1;
		display();
		do {
			int choice = input.nextInt();
			switch (choice) {
			case 1:
				countCWL(file);
				display();
				break;
			case 2:
				boolean flag = true;
				do {
					try {
						char search = inputLetter();
						countLetter(file, search);
						flag = false;
					} catch (inputException ex) {
						System.out.println(ex);
						char searchNew = inputLetter();
						countLetter(file, searchNew);
					}
				} while (flag);
				display();
				break;
			case 0:
				System.exit(0);
				break;
			default:
				System.out.println("选择功能错误请重新选择!");
				break;
			}

		} while (con != 0);
		input.close();

	}

	public static void display() {
		System.out.println("------ 菜           单---------------");
		System.out.println("1.统计文件字符数单词数行数");
		System.out.println("2.统计给定字母的出现次数");
		System.out.println("0.退出");
		System.out.println("---------------------------");
		System.out.println("请选择:");
	}

	// 统计字符数单词数行数
	public static void countCWL(File file) throws FileNotFoundException {
		Scanner temp1 = new Scanner(file);
		int cnum = 0, wnum = 0, lnum = 0;
		System.out.println("File " + file.getName() + " has");
		while (temp1.hasNextLine()) {
			String str = temp1.nextLine();
			lnum++;// 每循环一次就进行一次自增,用于统计行数
			cnum += str.length();// 用于统计总字符数

		}
		Scanner temp2 = new Scanner(file);
		while (temp2.hasNext()) {
			String word = temp2.next();
			wnum++;
		}
		temp1.close();
		temp2.close();
		System.out.println(cnum + " characters");
		System.out.println(wnum + " words");
		System.out.println(lnum + " lines");
	}

	// 统计给定字母的出现次数
	public static void countLetter(File file, char c) throws FileNotFoundException {
		Scanner temp = new Scanner(file);
		int count = 0;
		while (temp.hasNextLine()) {
			String str = temp.nextLine();
			for (int i = 0; i < str.length(); i++) {
				char x = str.charAt(i);
				if (x == c)
					count++;
			}
		}
		System.out.println(file.getName() + "中" + c + "的个数为:" + count);
		temp.close();
	}

	public static char inputLetter() throws inputException {
		System.out.println("请输入要查询的字符(区分大小写):");

		char c = input.next().charAt(0);
		if (c >= 'A' && c <= 'z') {
			return c;
		} else {

			throw new inputException("非法字符!请重新输入:");
		}

	}

}

运行结果示例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
基于PHP微信小程序教务管理系统设计实现,吴国辰。 教务管理系统是为了方便学校管理学生信息、教务信息等而开发的系统。基于PHP微信小程序开发的教务管理系统具有以下特点和功能。 首先,系统具有学生信息管理功能。学生可以通过微信小程序登录系统,查看个人信息、课程信息、成绩等。学生可以方便地查看自己的课程安排、考试成绩,并可以及时与教务部门联系。 其次,系统具有教师信息管理功能。教师可以通过微信小程序登录系统,查看自己所教授的课程信息、学生信息等。教师可以方便地发布课程公告、作业等,与学生进行交流和互动。 另外,系统还具有课程管理功能。教务部门可以通过微信小程序管理课程信息,包括课程设置、添加教师、安排上课时间和地点等。学生和教师可以通过小程序查询课程信息,方便快捷地了解课程安排。 还有,系统具有考试成绩管理功能。教务部门可以通过微信小程序录入学生的考试成绩,学生和教师可以通过小程序查询自己的考试成绩。系统可以智能统计和分析学生的成绩情况,方便教务部门进行学生成绩的管理和评价。 此外,系统还可以实现其他教务管理相关的功能,如请假管理、选课管理、宿舍管理等。 综上所述,基于PHP微信小程序教务管理系统可以方便学校管理学生信息和教务信息,提高学生、教师和教务部门之间的沟通和交流效率。吴国辰的设计实现将着重于系统的稳定性、安全性和易用性,为用户提供便捷的教务管理服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值