实验5 常用实用类

一、实验目的

熟悉JAVA中的String类、StringTokenizer类、Scanner类、StringBuffer类、Canlendar类、Pattern类和Matcher类的概念及用法。

二、实验要求

1.检索简历

简历的内容如下:

“姓名:张三。出生日期:1989.10.16。个人网站:http://www.zhang.com。身高:185cm,体重:72kg。”

编写一个java应用程序,判断简历中的姓名是否姓“张”,输出简历中的出生日期和个人网站,并判断简历中的身高是否大于180cm,体重是否小于75kg。

package t5_1;

public class mymain5_1 {
	public static void main(String args[]){
		String name = "张三";
		String birthday = "1989.10.16";
		String website = "http://www.zhang.com";
		String height = "185cm";
		String weight = "72kg";
		
		System.out.printf("简历中的姓名是否姓张:"+name.startsWith("张")+"\n");
		System.out.printf("出生日期:"+birthday+"\n");
		System.out.printf("个人网站:"+website+"\n");
		System.out.printf("身高是否大于180cm:");
		if(Integer.parseInt(height.substring(0,3)) > 180){
			System.out.printf("true"+"\n");
		}
		else{
			System.out.printf("false"+"\n");	
			}
		System.out.printf("体重是否小于75kg:");
		if(Integer.parseInt(weight.substring(0,2)) < 75){
			System.out.printf("true"+"\n");
		}
		else{
			System.out.printf("false"+"\n");	
			}
	}
}

2.找出字符串中的最大字符

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

package t5_2;

import java.util.Arrays;
import java.util.Scanner;

public class mymain5_2 {
	public static void main(String args[]){		
        Scanner reader = new Scanner(System.in);
        String s = reader.next();
        stringprocess a = new stringprocess();
		System.out.printf("字符串"+s+"中编码值最大的字符:"+a.getMAX(s));
        //System.out.print(a.getMAX(s));  print可以直接输出函数返回值,printf不可以
		reader.close();
	}
}

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

3.菜单的价格

菜单的内容如下:

“北京烤鸭:189元,西芹炒肉:12.9元,酸菜鱼:69元,铁板牛柳:32元。”

编写一个JAVA应用程序,输出菜单中的价格数据,并计算出菜单的总价格。

package t5_3;

import java.util.StringTokenizer;

public class mymain5_3 {
	public static void main(String args[]){
		String menu = "北京烤鸭:189元,西芹炒肉:12.9元,酸菜鱼:69元,铁板牛柳:32元";
		String regex = "[^0123456789.]+";
		String pricedata = menu.replaceAll(regex, " ");		
		System.out.print("菜单中的价格数据:"+pricedata+"\n");
		StringTokenizer fenxi = new StringTokenizer(pricedata, " ");
		double sum = 0;
		while(fenxi.hasMoreTokens()){
			String item = fenxi.nextToken();
			double price = Double.parseDouble(item);
			sum += price;
		}
		System.out.print("菜单的总价格:"+sum+"元");
	}
}

4.比较日期

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

package t5_4;

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

public class mymain5_4 {
	public static void main(String args[]){
		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);
	}
}

5.替换错别字

下列字符串中将“登录”错写为“登陆”,将“惊慌失措”错写为“惊慌失错”:

“忘记密码,不要惊慌失错,请登陆http://www.upc.edu.cn或登陆http://computer.upc.edu.cn,我们完美的为您解决问题。”

编写一个JAVA应用程序,输出错别字出现的位置,并用正确的文字替换,然后输出替换后的字符串。

package t5_5;

public class mymain5_5 {
	public static void main(String args[]){
		String example = "忘记密码,不要惊慌失错,请登陆http://www.upc.edu.cn或登陆http://computer.upc.edu.cn,我们完美的为您解决问题。";		
		String err1 = "登陆";
		System.out.print("错别字\""+err1+"\"出现的位置是:"+"\n");
		int loa1 = 0;
		//while里面不要写成example.indexOf("登陆") != -1,陷入死循环电脑烫得要死
		while(loa1 != -1){			
			loa1 = example.indexOf("登陆", loa1+err1.length());
			if(loa1 != -1){
				System.out.print(loa1+" ");
			}	
		}
		System.out.print("\n");
		
		String err2 = "惊慌失错";
		System.out.print("错别字\""+err2+"\"出现的位置是:"+"\n");
		int loa2 = 0;
		while(loa2 != -1){			
			loa2 = example.indexOf("惊慌失错", loa2+err2.length());
			if(loa2 != -1){
				System.out.print(loa2+" ");
			}	
		}
		System.out.print("\n");
		
		System.out.print("替换后的字符串:"+"\n"+example.replaceAll("登陆", "登录").replaceAll("惊慌失错", "惊慌失措"));
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值