热门标签 | 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); } }

运行结果:
运行结果截图


推荐阅读
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Java 中 Writer flush()方法,示例 ... [详细]
  • 本文介绍了如何使用 Spring Boot DevTools 实现应用程序在开发过程中自动重启。这一特性显著提高了开发效率,特别是在集成开发环境(IDE)中工作时,能够提供快速的反馈循环。默认情况下,DevTools 会监控类路径上的文件变化,并根据需要触发应用重启。 ... [详细]
  • Java 中的 BigDecimal pow()方法,示例 ... [详细]
  • Java 类成员初始化顺序与数组创建
    本文探讨了Java中类成员的初始化顺序、静态引入、可变参数以及finalize方法的应用。通过具体的代码示例,详细解释了这些概念及其在实际编程中的使用。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • MQTT技术周报:硬件连接与协议解析
    本周开发笔记重点介绍了在新项目中使用MQTT协议进行硬件连接的技术细节,涵盖其特性、原理及实现步骤。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • 本文介绍如何解决在 IIS 环境下 PHP 页面无法找到的问题。主要步骤包括配置 Internet 信息服务管理器中的 ISAPI 扩展和 Active Server Pages 设置,确保 PHP 脚本能够正常运行。 ... [详细]
  • 探讨如何通过编程技术实现100个并发连接,解决线程创建顺序问题,并提供高效的并发测试方案。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 本文详细介绍了如何构建一个高效的UI管理系统,集中处理UI页面的打开、关闭、层级管理和页面跳转等问题。通过UIManager统一管理外部切换逻辑,实现功能逻辑分散化和代码复用,支持多人协作开发。 ... [详细]
  • 本文介绍了如何在C#中启动一个应用程序,并通过枚举窗口来获取其主窗口句柄。当使用Process类启动程序时,我们通常只能获得进程的句柄,而主窗口句柄可能为0。因此,我们需要使用API函数和回调机制来准确获取主窗口句柄。 ... [详细]
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社区 版权所有