热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java实验:常见工具类应用

本实验涵盖五个编程任务,包括简历信息检索、字符串中最大字符查找、菜单价格计算、日期比较及错别字替换。通过这些练习,加深对Java常用工具类的理解和应用。

实验概述

本次实验旨在通过一系列编程练习,帮助学习者掌握Java中常用工具类的应用,包括字符串处理、日期操作等。每个任务都提供了具体的实现步骤和示例代码,以增强理解和实践能力。


一、简历信息检索

任务要求:给定一段包含个人信息的文本,编写程序判断该人的姓氏是否为“张”,并提取出生日期、个人网站链接,同时判断身高是否超过180cm,体重是否低于75kg。

示例代码:

public class ResumeParser { public static void main(String[] args) { String resume = "姓名:张三。出生日期:1989.10.16。个人网站:http://www.zhang.com。身高:185cm,体重:72kg。"; if (resume.startsWith("姓名:张")) { System.out.println("姓名为张"); } String[] details = resume.split("。|"); for (String detail : details) { if (detail.contains("出生日期")) { System.out.println(detail); } else if (detail.contains("个人网站")) { System.out.println(detail); } } if (resume.contains("身高:185cm")) { System.out.println("身高大于180cm"); } if (resume.contains("体重:72kg")) { System.out.println("体重小于75kg"); } } }

运行结果:
运行结果截图


二、查找字符串中的最大字符

任务要求:创建一个字符串处理类,其中包含一个方法用于找出给定字符串中ASCII值最大的字符。

示例代码:

import java.util.Arrays; public class StringHandler { char getMaxChar(String input) { char[] chars = input.toCharArray(); Arrays.sort(chars); return chars[chars.length - 1]; } } public class TestMaxChar { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入字符串:"); String input = scanner.nextLine(); StringHandler handler = new StringHandler(); System.out.println("最大字符是:" + handler.getMaxChar(input)); } }

运行结果:
运行结果截图


三、菜单价格计算

任务要求:编写程序解析菜单项及其价格,计算所有项目的总价。

示例代码:

import java.util.Scanner; public class MenuPriceCalculator { public static void main(String[] args) { String menu = "北京烤鸭:189元,西芹炒肉:12.9元,酸菜鱼:69元,铁板牛柳:32元。"; Scanner scanner = new Scanner(menu).useDelimiter("[^0-9.]+")); double total = 0; while (scanner.hasNext()) { try { double price = scanner.nextDouble(); System.out.println(price); total += price; } catch (InputMismatchException e) { scanner.next(); } } System.out.println("菜单总价: " + total + "元"); } }

运行结果:
运行结果截图


四、日期比较

任务要求:用户输入两个日期,程序需判断这两个日期的关系(前后或相等),并计算它们之间的天数差。

示例代码:

import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; public class DateComparator { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入两个日期(格式:yyyy/MM/dd):"); String dates = scanner.nextLine(); String[] dateArray = dates.split(" "); SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); try { Date date1 = sdf.parse(dateArray[0]); Date date2 = sdf.parse(dateArray[1]); long diff = Math.abs(date1.getTime() - date2.getTime()); long days = diff / (1000 * 60 * 60 * 24); if (date1.before(date2)) { System.out.println("第一个日期比第二个日期早"); } else if (date1.after(date2)) { System.out.println("第一个日期比第二个日期晚"); } else { System.out.println("两个日期相同"); } System.out.println("两日期相差天数: " + days); } catch (ParseException e) { e.printStackTrace(); } } }

运行结果:
运行结果截图


五、错别字替换

任务要求:在给定的字符串中,将“登陆”替换为“登录”,“惊慌失错”替换为“惊慌失措”,并输出错别字出现的位置及替换后的完整字符串。

示例代码:

import java.util.regex.Matcher; import java.util.regex.Pattern; public class TypoCorrector { public static void main(String[] args) { String text = "忘记密码,不要惊慌失错,请登陆http://www.upc.edu.cn或登陆http://computer.upc.edu.cn,我们完美的为您解决问题。"; Pattern typo1 = Pattern.compile("登陆"); Matcher matcher1 = typo1.matcher(text); while (matcher1.find()) { System.out.println("'登陆'出现在位置: " + matcher1.start()); } String correctedText = matcher1.replaceAll("登录"); Pattern typo2 = Pattern.compile("惊慌失错"); Matcher matcher2 = typo2.matcher(correctedText); while (matcher2.find()) { System.out.println("'惊慌失错'出现在位置: " + matcher2.start()); } String finalText = matcher2.replaceAll("惊慌失措"); System.out.println("修正后的文本: "); System.out.println(finalText); } }

运行结果:
运行结果截图


推荐阅读
  • Spring Boot 入门指南
    本文介绍了Spring Boot的基本概念及其在现代Java应用程序开发中的作用。Spring Boot旨在简化Spring应用的初始设置和开发过程,通过自动配置和约定优于配置的原则,帮助开发者快速构建基于Spring框架的应用。 ... [详细]
  • 本文介绍了两种使用Java发送短信的方法:利用第三方平台的HTTP请求和通过硬件设备短信猫。重点讲解了如何通过Java代码配置和使用短信猫发送短信的过程,包括必要的编码转换、串口操作及短信发送的核心逻辑。 ... [详细]
  • 本文介绍了一种在Java中实现自然排序的方法,通过自定义比较器来处理包含数字的字符串,确保数字部分按照数值大小进行正确排序。 ... [详细]
  • 本文探讨了在JavaScript中执行字符串形式代码的多种方法,包括使用eval()函数以及跨页面调用的方法。同时,文章详细介绍了JavaScript中字符串的各种常用方法及其应用场景。 ... [详细]
  • Eclipse 下 JavaFX 程序开发指南
    本文介绍了 JavaFX,这是一个用于创建富客户端应用程序的 Java 图形和媒体工具包,并详细说明了如何在 Eclipse 环境中配置和开发 JavaFX 应用。 ... [详细]
  • 本文将详细介绍NSRunLoop的工作原理,包括其基本概念、消息类型(事件源)、运行模式、生命周期管理以及嵌套运行等关键知识点,帮助开发者更好地理解和应用这一重要技术。 ... [详细]
  • 本文整理了一系列Java面试问题,涵盖Java开发环境的分类、Java语言的核心特性、Linux环境下Java SE的安装步骤、常用的Java开发工具介绍,以及类与对象的基本概念等。 ... [详细]
  • 深入理解设计模式之观察者模式
    本文详细介绍了观察者模式,这是一种行为设计模式,适用于当对象状态发生变化时,需要通知其他相关对象的场景。文中不仅解释了观察者模式的基本概念,还通过Java代码示例展示了其实现方法。 ... [详细]
  • Kotlin 扩展函数详解及其工作原理
    本文详细探讨了 Kotlin 中的扩展函数概念,包括其定义、使用方式以及背后的实现机制,并分析了使用扩展函数时的一些限制。 ... [详细]
  • 按照频率降序打印数字 ... [详细]
  • 本文通过一个简单的Java程序示例,深入探讨了整型数据在Java中的溢出机制,以及这种机制背后的二进制补码表示法。文章不仅展示了具体的代码实现,还解释了为何加1操作会导致数值从最大值变为最小值。 ... [详细]
  • 本文详细介绍了如何将 Spring Boot 2.0 应用程序部署到外部 Tomcat 服务器上,包括必要的环境配置、POM 文件调整及启动类的修改等关键步骤。 ... [详细]
  • 近期探讨了‘内部螺旋矩阵算法’的实现细节,并深入分析了面向对象编程中的可扩展性问题。基于这些讨论,本文通过引入桥梁设计模式对原有代码进行了优化与重构,以增强代码的灵活性和可维护性。 ... [详细]
  • 深入理解二叉树的遍历算法:VRL、RVL、RLV
    本文详细介绍了二叉树的不同遍历方法,包括层次遍历、先序遍历(VRL)、中序遍历(RVL)和后序遍历(RLV)。通过具体示例和代码实现,帮助读者更好地理解和应用这些遍历技术。 ... [详细]
  • 创建一个People类,年龄,工资,性别三个属性定义一个方法叫做找对象,找对象方法传过来一个人,首先如果性别相同,就输出不是同性恋如果对方是男的,年龄小于28,工资大于1000 ... [详细]
author-avatar
lydia芸小窝的天使
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有