首页 > 编程语言 >java-BLOG-1

java-BLOG-1

时间:2024-10-26 21:59:02浏览次数:1  
标签:输出 题目 正则表达式 BLOG 使用 java 方法 输入

1.前言
第一二个题目集除了最后一个题目以及第三个题目集的第一个题目都比较简单,只要按照题目要求,创建相应的类,题目比较简单一般只需要创建一个类和相应的一些属性、方法,按照输入输出的要求进行创建就行。前两个题目集只需要做对相应的输出就能做对,而第三个题目集重点增加了对输入的不合法的判断,以及其对应输出。比如:第三个题目集的第二个题目。有超过1个日期不合法和第一行日期非法、第二行日期合法且有效这两个测试点,因为我用的是正则表达式,一开始就限定了范围,而导致超出的范围没办法判断,所以一直通不过。后面改了正则表达式的范围,才通过。对于这三个题目集的最后一个题目,难度大,需要创建多个类,输入和输出的格式和内容比较多,测试点多。

2.设计与分析
第一次题目集-答题判题程序-1
(1)类图

由于第一次我还没使用正则表达式,所以我使用的是String类里的方法,但它有很多局限性,必须要有固定格式而且操作繁琐。在后面使用正则表达式,才发现正则表达式是真的方便。

input.hasNextLine() 是 Java 中 Scanner 类的一个方法,用于检查输入中是否还有下一行可供读取。常用在读取文本文件或控制台输入时,通常与 input.nextLine() 方法一起使用,以确保在尝试读取下一行之前,输入流中确实还有数据。

使用TreeMap有一些十分方便的方法可以输出,不用自己格外写函数。

第二次题目集-答题判题程序-2
(1)类图

这个题目是在上次题目进阶的,所以我上次使用的是数组,发现数组有局限性,每次输出时都要一个循环,而且要传这个数组的长度,并且要提前设置长度,这会导致有空余。而用列表的话,它定义了很多好用的方法,不用自己再去定义函数了,省事了很多。

第三次题目集-答题判题程序-3
(1)类图
由于这次实验我没有留出足够的时间,导致我把所有功能写在一个类里,后面我把功能分成几个类,并重新画出类图。

这次实验终于使用了正则表达式,要根据输入格式设置符合的格式。

输入后要判断是否符合表达式,如果符合就进行操作,由于要存储数据,要用split来分隔数据,并进行储存。

3.踩坑心得
(1)正则表达式的数据范围
String regex = "^(([0-9]{4})-([0-9]{2})-(0[0-9]|[1-9][0-9]))$";
一开始正则表达式是月份和天数是固定在12和31以内的,但输出格式是如果第一行日期字符串非法,输出自定义的错误信息。所以导致输入天数和月份超过31、12时,代码输出没反应,导致测试点没过。
(2)计算两日期之差

如果是自己写个函数计算两个日期之间的差,是比较复杂的,可以直接使用这个代码可以轻松的算出值,非常方便。
(3)检查输入中是否还有下一行可供读取

如果没有以end为结尾的要求,就需要判断下一行是否有数据,可以考虑input.hasNextLine() 判断下一行是否还有数据。
(4)将String类型准换成int类型
在处理String数据时常常遇到这样的情况,要把其类型转换成int类型,可以使用Integer.parseInt()转换。

4.改进建议

5.总结
正则表达式确实方便,一开始我都不是使用正则表达式,用了之后我就发现它得定义得知识点有很多,所以还需要深入学习。类与类之间得数据传输感觉把握得不是很好,常常报错,还有就是类之间经常重复定义,明明这几个类的作用是一样的,可以用一个数据直接传,而不用传多次。同时类的定义和方法还需斟酌,定义几个类,其属性和方法是什么,这是关键,也是最难的,需要终身学习。有时我发现使用了一钟模式,我会依赖它,然后遇到问题时又会使用它来解决,可又是却又不是最佳方法,可能还更繁琐,所以需要尝试不同的方法,了解其好坏和适用场景。

标签:输出,题目,正则表达式,BLOG,使用,java,方法,输入
From: https://www.cnblogs.com/c119/p/18503951

相关文章

  • jsp ssm 校园新闻管理系统 新闻发布系统 news 项目源码 web java
    一、项目简介本项目是一套基于SSM的校园新闻管理系统,主要针对计算机相关专业的和需要项目实战练习的Java学习者。包含:项目源码、数据库脚本、软件工具等。项目都经过严格调试,确保可以运行!二、技术实现​后端技术:Spring、SpringMVC、MyBatis前端技术:JSP、HTML、CSS、Ja......
  • jsp ssm 智能图书馆图书推荐系统 图书管理 项目源码 web java
    一、项目简介本项目是一套基于SSM的智能图书馆图书推荐系统,主要针对计算机相关专业的和需要项目实战练习的Java学习者。包含:项目源码、数据库脚本、软件工具等。项目都经过严格调试,确保可以运行!二、技术实现​后端技术:Spring、SpringMVC、MyBatis前端技术:JSP、HTML、C......
  • BLOG-1
    Java题目集1~3前言本阶段的Java课程作业中,我们完成了从题目集1到题目集3的任务。每个题目集围绕一个或多个编程主题,难度逐步增加,从基本语法操作到较为复杂的面向对象设计,循序渐进地帮助我构建和巩固编程知识。以下是每个题目集的概述:题目集1:基础语法训练,涵盖了基本的循环、条件......
  • 南昌航空大学-软件学院-22207112-卢翔-JAVAPTA(1-3)博客
    目录前言PTA第一次作业(7-5答题判题程序-1)设计与分析题目分析知识点解析调试过程时序图,耦合度改进建议PTA第二次作业设计与分析题目分析知识点解析(不重复)调试过程类图,耦合度改进建议PTA第三次作业设计与分析题目分析知识点解析调试过程类图,耦合度改进建议踩坑心得总结前言本次的......
  • Java面向对象
    **Java面向对象学习心得**在学习Java的过程中,面向对象编程(OOP)无疑是最重要的概念之一。Java是一门纯面向对象的编程语言,它通过类和对象的概念使得程序设计更为清晰、模块化,并且便于维护和扩展。以下是我在学习Java面向对象编程过程中的一些心得体会。一、理解面向对象的......
  • 初学Java(二)
    初学java(二)在Java学习的第二周,我的学习旅程取得了显著的进展,既加深了对编程基础的理解,又开始接触一些更为复杂的概念。在这段时间里,我意识到编程不仅仅是写代码的过程,更是一种逻辑思维的锻炼和解决问题的能力提升。一、基础知识的巩固本周,我复习了Java的基本语法,包括数据......
  • java游戏第六天——总结
    开始我们先在这里创建五个java文件,后面创建一个文件夹存储图片,我就按照这几个文件作用展开描述bg.javapackagecommon;importcommon.game_pic;importjava.awt.Color;importjava.awt.Graphics;publicclassbg{ publicvoidpaintself(Graphicsg) { g.drawIm......
  • java游戏(第4天)终于能移动了
    学到,自己的小鱼类packagecommon;importjava.awt.*;importcommon.game_pic;publicclassmyfish{ Imageimg=game_pic.myfish_l; //坐标 intx=700; inty=500; intwidth=50; intheight=50; //速度 intspeed=20; //等级 intlevel=1; publicvoidpaintse......
  • 基于Java+SpringBoot+Mysql实现的古诗词平台功能设计与实现二
    一、前言介绍:1.1项目摘要随着信息技术的迅猛发展和数字化时代的到来,传统文化与现代科技的融合已成为一种趋势。古诗词作为中华民族的文化瑰宝,具有深厚的历史底蕴和独特的艺术魅力。然而,在现代社会中,由于生活节奏的加快和信息获取方式的多样化,古诗词的传播和阅读面临着一定的挑......
  • JAVA的设计模式都有那些
        Java设计模式是为了解决软件开发中常见的问题而创建的一系列最佳实践。它们提供了一种在特定情境下解决问题的方法论,并且已经被广泛验证和应用。这些模式不是具体的代码,而是关于如何组织代码以达到某种目的的高层次描述。设计模式通常分为三大类:创建型模式、结构型......