Java习题(五)

1.检索简历

简历的内容如下:

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

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

public class main_1 {
	public static void main(String args[]){		
		String info,temp;
		int index1=0,index2=0;
		String arr[]=new String[5];
		info="姓名:张三。出生日期:1989.10.16。个人网站:http://www.zhang.com。身高:185cm,体重:72kg。";
		for(int i=0;i<=3;i++){
			index1=info.indexOf(':',index1+1);
			index2=info.indexOf('。',index2+1);
			arr[i]=info.substring(index1+1, index2);
		}
		temp=arr[3];
		arr[3]=temp.substring(0,temp.indexOf('c'));
		arr[4]=temp.substring(temp.indexOf(':')+1, temp.indexOf('k'));
		
		if(arr[0].startsWith("张")){
			System.out.println("此人姓张");
		}else{
			System.out.println("此人不姓张");
		}
		System.out.println("此人出生日期为"+arr[1]);
		System.out.println("此人个人网站为"+arr[2]);
		int h=Integer.parseInt(arr[3]);
		if(h>=180){
			System.out.println("此人身高大于等于180cm");
		}else{
			System.out.println("此人身高小于180cm");
		}
		int w=Integer.parseInt(arr[4]);
		if(w>=75){
			System.out.println("此人体重大于等于75kg");
		}else{
			System.out.println("此人体重小于75kg");
		}
	}
}

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

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

public class getMax{
	static int max=0;
	public static void getMAX(String s){
		for(int i=0;i<s.length();i++){
			if((int)s.charAt(i)>max){
				max=(int)s.charAt(i);
			}
		}
	    System.out.println((char)max);
    }
}
import java.util.Scanner;
public class main_2 {
	public static void main(String args[]){		
		Scanner input=new Scanner(System.in);
		String s=(String)input.next();
		getMax.getMAX(s);
	}
}

3.菜单的价格

菜单的内容如下:

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

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

import java.util.Scanner;
public class main_3 {
	public static void main(String args[]){	
		String s="北京烤鸭:189元,西芹炒肉:12.9元,酸菜鱼:69元,铁板牛柳:32元。";
		s=s.replace(":", " ");
		s=s.replace(",", " ");
		s=s.replace("元", "");
		s=s.replace("。", "");
		double price,sum=0.0;
		String name;
		Scanner reader=new Scanner(s);
		while(reader.hasNext()){
			name=reader.next();
			price=reader.nextDouble();
			System.out.println(name+"的价格为:"+price+"元");
			sum+=price;
		}
		System.out.println("菜单总价格为:"+sum+"元");
	}
}

4.比较日期

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

import java.util.Scanner;
import java.util.Calendar;//因为年份有闰年,所以用calendar类快一点
public class main_4 {
	public static void main(String args[]){	
		//输入样例为2021年12月7日
		Scanner time1=new Scanner(System.in);
		Scanner time2=new Scanner(System.in);
		String regex="\\D+",str1,str2;
		str1=time1.next().replaceAll(regex," ");
		str2=time2.next().replaceAll(regex," ");
		String t1[]=str1.split(" ");
		String t2[]=str2.split(" ");
		Calendar c=Calendar.getInstance();
		c.set(Integer.parseInt(t1[0]),Integer.parseInt(t1[1])-1,Integer.parseInt(t1[2]));
		long cal1=c.getTimeInMillis();
		c.set(Integer.parseInt(t2[0]),Integer.parseInt(t2[1])-1,Integer.parseInt(t2[2]));
		long cal2=c.getTimeInMillis();
		if(cal1>cal2){
			System.out.println("第二个日期更早");
		}else if(cal1<cal2){
			System.out.println("第一个日期更早");
		}else{
			System.out.println("两个日期一样");
		}
		long days=Math.abs(cal1-cal2)/(3600*24*1000);
		System.out.println("两个日期相差"+days+"天");		
	}
}

5.替换错别字

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

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

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

public class main_5 {
	public static void main(String args[]){	
		String s="忘记密码,不要惊慌失错,请登陆http://www.upc.edu.cn或登陆http://computer.upc.edu.cn,我们完美的为您解决问题。";
		int wr1,wr2,wr3;
		wr1=s.indexOf("登陆");
		wr2=s.indexOf("登陆",wr1+1);
		wr3=s.indexOf("惊慌失错");
		s=s.replace("登陆","登录");
		s=s.replace("惊慌失错","惊慌失措");
		System.out.println("“登陆”出错的位置从"+wr1+"到"+(wr1+1)+"上和从"+wr2+"到"+(wr2+1)+"上");
		System.out.println("“惊慌失错”出错的位置从"+wr3+"到"+(wr3+3)+"上");
		System.out.println("正确的文字应该是:\n"+s);
	}
}
  • 12
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值