作者:lydia芸小窝的天使 | 来源:互联网 | 2024-12-05 16:14
实验概述
本次实验旨在通过一系列编程练习,帮助学习者掌握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); } }
运行结果: