💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
**第一题:** 输入一行字符,分别统计出其英文字母、空格、数字和其它字符的个数。 提示: 对比char字符在ASK码的范围,就可以确定它符号的类别 char字符ASK码的范围 * 数字0到9: 48~57 * 字母A到Z:65到90 a到z:97到122 * 空格是32 如: ``` char a = 'a'; 97<= a <=122 ``` ~~~ public class Demo { public static void main(String[] args) { getCharNum(""); } public static void getCharNum(String str) { //数字字符总数 int num = 0; //字母字符总数 int eng = 0; //空格总数 int space = 0; //其他字符总数 int other = 0; if(str != null) { //首先将string类型的字符串,变为一个个的char数组 char[] charArray = str.toCharArray(); for(int i = 0; i < charArray.length; i++) { char c = charArray[i]; //对遍历出来的char值做判断 if (c >= 48 && c <= 57) {//字符是数字 num++; } else if ((c >= 65 && c <= 90) || (c >= 97 && c <= 122)) {//字符是字母 eng++; } else if (c == 32) {//字符是空格 space++; } else { other++;//其他 } } System.out.println("数字有:" + num + "个," + "字母有:" + eng + "个," + "空格有:" + space + "个," + "其他字符有:" + other + "个"); } else { System.out.println("输入字符不合法"); } } } ~~~ **第二题** 要求写一个秒表类(StopWatch),该秒表类该类在系统中只能有存在一个实例。并且存在star方法,可以用于开始计时,并且输出开始时间,同时存在stop方法用于停止计时,输出结束时间,要求秒表可以存储以毫秒为单位十个计时任务 ~~~ public class StopWatch { private static StopWatch stopWatch = new StopWatch(); private StopWatch() { } public static StopWatch getInstance() { return stopWatch; } private long startTime; private List<Long> record = new ArrayList<Long>(); public List<Long> getRecord() { return record; } public void start() { Date date = new Date(); this.startTime = date.getTime(); } public void end() { if(startTime == 0) { System.out.println("未曾开始"); } else { Date date = new Date(); long endTime = date.getTime(); long time = endTime - startTime; if(record.size() >= 10) { record.remove(0); record.add(time); } else { record.add(time); } this.startTime = 0; } } } public class Demo { public static void main(String[] args) throws InterruptedException { StopWatch stopWatch = StopWatch.getInstance(); //第一次计时 stopWatch.start(); System.out.println(stopWatch.getRecord()); //让程序休息30毫秒 Thread.sleep(30); stopWatch.end(); System.out.println(stopWatch.getRecord()); //第二次计时 stopWatch.start(); //让程序休息10毫秒 Thread.sleep(10); stopWatch.end(); System.out.println(stopWatch.getRecord()); stopWatch.start(); Thread.sleep(3); stopWatch.end(); System.out.println(stopWatch.getRecord()); stopWatch.start(); Thread.sleep(4); stopWatch.end(); System.out.println(stopWatch.getRecord()); stopWatch.start(); Thread.sleep(5); stopWatch.end(); System.out.println(stopWatch.getRecord()); stopWatch.start(); Thread.sleep(6); stopWatch.end(); System.out.println(stopWatch.getRecord()); stopWatch.start(); Thread.sleep(7); stopWatch.end(); System.out.println(stopWatch.getRecord()); stopWatch.start(); Thread.sleep(8); stopWatch.end(); System.out.println(stopWatch.getRecord()); stopWatch.start(); Thread.sleep(9); stopWatch.end(); System.out.println(stopWatch.getRecord()); stopWatch.start(); Thread.sleep(10); stopWatch.end(); System.out.println(stopWatch.getRecord()); stopWatch.start(); Thread.sleep(11); stopWatch.end(); System.out.println(stopWatch.getRecord()); stopWatch.start(); Thread.sleep(12); stopWatch.end(); System.out.println(stopWatch.getRecord()); } } ~~~ # 综合案例(面向对象) ## 场景案例: 学校新开一门专业,叫做计算机科学与应用,专业编号J0001,学制年限为4年。 现有三名学生如下表所示,加入该专业学习,要求采用Java面向对象的思维描述该场景: | 姓名 | 学号 | 性别 | 年龄 | | --- | --- | --- | --- | | 张三 | S01 | 男 | 18岁 | | 李四 | S02 | 女 | 17岁 | | 王五 | S03 | 男 | 18岁 | ## 实现效果 ![](https://img.kancloud.cn/71/3d/713dfa7a3fc7174f072e6fb00f76dc9b_1011x486.png) ## 案例分析 1. 本场景中共存在几个对象?各自的特征是什么? 2. 我们又可以针对这几个对象抽象归纳出几个类出来 ## 代码实现