Java实验五:常用实用类

本文介绍了五个实用的Java编程练习,包括检查简历信息、查找最大字符、解析菜单价格、日期比较和错别字替换。通过实例展示了如何运用Java进行字符串处理和逻辑判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、检索简历

简历的内容如下:
“姓名:张三。出生日期:1989.10.16。个人网站:http://www.zhang.com。身高:185cm,体重:72kg。”
编写一个java应用程序,判断简历中的姓名是否姓“张”,输出简历中的出生日期和个人网站,并判断简历中的身高是否大于180cm,体重是否小于75kg。

代码如下:

public class FindPeopleMess {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        String mess="姓名:张三。出生日期:1989.10.16。个人网站:http://www.zhang.com。身高:185cm,体重:72kg。";
        
        //判断简历中的姓名是否姓“张”
        int index=mess.indexOf(":");//第一次冒号出现的位置
        String name=mess.substring(index+1); //获取从index+1位置开始的子串
        if (name.startsWith("张")){
        	System.out.print("简历中的姓名为'张'"+"\n");
        }
        
        //输出简历中的出生日期和个人网站
        index=mess.indexOf(":",index+1);//第二次冒号出现的位置
        String date=mess.substring(index+1,index+11);//出生日期
        System.out.print("出生日期:"+date+"\n");
        index=mess.indexOf(":",index+1);//第三次冒号出现的位置
        String web=mess.substring(index+1,index+21);//个人网站
        System.out.print("个人网站:"+web+"\n");
        
        //判断简历中的身高是否大于180cm
        index=mess.indexOf(":",index+6);//第五次冒号出现的位置
        String height=mess.substring(index+1,index+4);//身高
        double heightNumber=Double.parseDouble(height);
        if(heightNumber>180.0){
        	System.out.print("身高大于180cm"+"\n");
        }
        
        //判断简历中的体重是否小于75kg
        index=mess.indexOf(":",index+1);//第六次冒号出现的位置
        String weight=mess.substring(index+1,index+3);//体重
        double weightNumber=Double.parseDouble(weight);
        if(weightNumber<75){
        	System.out.print("体重小于75kg"+"\n");
        }
        
        
	}

运行结果:
在这里插入图片描述

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

设计一个字符串处理类,该类中包含一个方法char getMAX(String s),要求找出字符串s中编码值最大的那个字符。s字符串的内容从键盘输入。

HandleString类:

import java.util.Arrays;

public class HandleString {   
    char getMAX(String s){
        char a[],b;
        a=s.toCharArray();
        Arrays.sort(a);
		b=a[a.length-1];
		return b;
    }	
}

text类:

import java.util.Scanner;
import java.util.Arrays;
public class text {

	public static void main(String[] args) {
		// TODO Auto-generated method stub	
		//从键盘输入字符串
		Scanner reader=new Scanner(System.in);
		System.out.print("请输入字符串:");
		String s=reader.nextLine();
		
		HandleString hs=new HandleString();
		System.out.print("字符串中编码值最大的字符为:"+hs.getMAX(s));
	}
}

运行结果:
在这里插入图片描述

三、菜单的价格

菜单的内容如下:
“北京烤鸭:189元,西芹炒肉:12.9元,酸菜鱼:69元,铁板牛柳:32元。”
编写一个JAVA应用程序,输出菜单中的价格数据,并计算出菜单的总价格。

import java.util.*;

public class text {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        
		String menu="北京烤鸭:189元,西芹炒肉:12.9元,酸菜鱼:69元,铁板牛柳:32元。";
		Scanner scanner = new Scanner(menu);
		
		//正则表达式,模式串定为除数字和”.“之外,其他的所有字符。
		String regex="[^0123456789.]+";
		
		//useDelimiter()方法,将正则表达式作为分割标记
		scanner.useDelimiter(regex);
		
		double sum=0;
		
		//scanner调用nextDouble()方法将数字型单词转化为double型数据返回。
		//如果单词不是数字型,会发生InputMismatchException异常。所以要进行异常处理
		while (scanner.hasNext()) {
            try {
                double price = scanner.nextDouble();
                System.out.println(price);
                sum += price;
            }
            catch (InputMismatchException exception) {
                String tmp = scanner.next();
            }
        }
        System.out.println("菜单总价: " + sum + "元");
		
	}

}

运行结果:
在这里插入图片描述

四、比较日期

编写一个JAVA应用程序,用户输入两个日期,程序将判断两个日期的大小关系,以及两个日期之间的间隔天数。

import java.util.*;
import java.util.regex.*;

public class text {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.print("日期示例:2021/12/12 2021/12/13"+"\n"+"输入两个日期:");
		Scanner s = new Scanner(System.in);
		String data = s.nextLine();
		//不能用next(),next()以空格和回车键作为结束符,空格后面的第二个日期没有被输入,显示为0
		s.close();
		String regex = "[0-9]+";
		Pattern p = Pattern.compile(regex);
		Matcher m = p.matcher(data);
		int d[] = new int[6];
		for(int i = 0; m.find(); i++){
			String item = m.group();
			d[i] = Integer.parseInt(item);
		}
				
		Calendar c1 = Calendar.getInstance();
		c1.set(d[0], d[1]-1, d[2]);
		Calendar c2 = Calendar.getInstance();
		c2.set(d[3], d[4]-1, d[5]); 
				
		if(c1.compareTo(c2) == -1){
			System.out.print("第一个日期比第二个日期早"+"\n");
		}
		else if(c1.compareTo(c2) == 1){
			System.out.print("第一个日期比第二个日期晚"+"\n");
		}
		else{
			System.out.print("两个日期一样"+"\n");
		}
		
		if(c1.after(c2)){
			Calendar cal = c1;
			c1 = c2;
			c2 = cal;
		}
		long m1 = c1.getTimeInMillis();
		long m2 = c2.getTimeInMillis();
		long m3 = m2 - m1;
		int day = (int)(m3/(1000*60*60*24));
		System.out.print("两个日期之间的间隔天数:"+day);

	}

}

运行结果:
在这里插入图片描述

五、替换错别字

下列字符串中将“登录”错写为“登陆”,将“惊慌失措”错写为“惊慌失错”:
“忘记密码,不要惊慌失错,请登陆http://www.upc.edu.cn或登陆http://computer.upc.edu.cn,我们完美的为您解决问题。”
编写一个JAVA应用程序,输出错别字出现的位置,并用正确的文字替换,然后输出替换后的字符串。

import java.util.regex.*;

public class text {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str="忘记密码,不要惊慌失错,请登陆http://www.upc.edu.cn或登陆http://computer.upc.edu.cn,我们完美的为您解决问题。";
		Pattern pattern1;
		Pattern pattern2;
		Matcher matcher1;
		Matcher matcher2;
		
		String regex1="登陆";
		String regex2="惊慌失错";
		
		pattern1=Pattern.compile(regex1);
		matcher1=pattern1.matcher(str);
		
		while(matcher1.find()){
			String s=matcher1.group(); //返回find()找到的子串
			System.out.print(matcher1.start()+"位置出现:");
			System.out.print(s+"\n");
		}
		
		System.out.print("将\"登陆\"替换为\"登录\"的字符串:"+"\n");
		String result=matcher1.replaceAll("登录");
		System.out.print(result+"\n");
		
		
		pattern2=Pattern.compile(regex2);
		matcher2=pattern2.matcher(result);
		
		while(matcher2.find()){
			String s=matcher2.group(); //返回find()找到的子串
			System.out.print(matcher2.start()+"位置出现:");
			System.out.print(s+"\n");
		}
		System.out.print("将\"惊慌失错\"替换为\"惊慌失措\"的字符串:"+"\n");
		result=matcher2.replaceAll("惊慌失措");
		System.out.print(result);

	}

}

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值