java第五章练习题

1.检索简历

简历的内容如下:

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

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

80cm,体重是否小于75kg。

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
	static String resume="姓名:张三。出生日期:1989.10.16。个人网站:http://www.zhang.com。身高:185cm,体重:72kg。";
    public static void main(String[] args) {
    	System.out.print(resume.startsWith("姓名:张")+"\n");
        Pattern p = Pattern.compile("个人网站:(.*>?)。身高:");
        Matcher m = p.matcher(resume);
        if(m.find()){
            System.out.print(m.group(1));
        }
    }
}

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

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

import java.util.Scanner;

public class Test{
	public static void main(String[] args) {
		Scanner reader = new Scanner (System.in);
		String s=reader.nextLine();  
		HandleString ma=new HandleString();
		char maxs=ma.getMAX(s);
    	System.out.print(maxs);
    }
}
class HandleString{
    public char getMAX(String s){
        char [] b;
        b=s.toCharArray();
        char maxs=b[0];
        for (int i=1; i<b.length;i++){
            if(b[i]>maxs){
                maxs=b[i];
            }
        }
        return maxs;
    }
}

3.菜单的价格

菜单的内容如下:

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

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

import java.util.InputMismatchException;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test{
	public static void main(String[] args) {
        String resume="北京烤鸭:189元,西芹炒肉:12.9元,酸菜鱼:69元,铁板牛柳:32元。";
        Scanner scanner = new Scanner(resume);
        scanner.useDelimiter("[^0123456789.]+");
        double sum=0;
        while(scanner.hasNext()){
        	try{
        		double price =scanner.nextDouble();
        		sum+=price;
        		System.out.print(price+"\n");
        	}
        	catch(InputMismatchException exp){
        		String t =scanner.next();
        	}
        }
        System.out.print(sum);
    }
}

4.比较日期

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

2015 12 1
2014 12 1

import java.util.*;
public class Test{
	public static void main(String[] args) {
        Scanner f1=new Scanner(System.in);
        String f=f1.nextLine();
        String[] first=f.split(" ");
        
        Scanner s1=new Scanner(System.in);
        String s=s1.nextLine();
        String second[]=s.split(" ");
        
        Calendar calendar1=Calendar.getInstance();
        calendar1.set(Integer.valueOf(first[0]).intValue(),Integer.valueOf(first[1]).intValue(),Integer.valueOf(first[2]).intValue());
        long time1=calendar1.getTimeInMillis();
        Calendar calendar2=Calendar.getInstance();
        calendar2.set(Integer.valueOf(second[0]).intValue(),Integer.valueOf(second[1]).intValue(),Integer.valueOf(second[2]).intValue());
        long time2=calendar2.getTimeInMillis();
        String c1=String.format("%tY年%<tm月%<td日",calendar1);
    	String c2=String.format("%tY年%<tm月%<td日",calendar2);
        if(calendar1.after(calendar2)){
        	System.out.print(c1+"大于"+c2);
        	long subDay=(time1-time2)/(1000*60*60*24);
        	System.out.print("相隔"+subDay);
        }else{
        	System.out.print(c2+"大于"+c1);
        	long subDay=(time2-time1)/(1000*60*60*24);
            System.out.print("相隔"+subDay);
        }
        
    }
}

5.替换错别字

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

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

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

import java.util.InputMismatchException;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {
	static String s="忘记密码,不要惊慌失错,请登陆http://www.upc.edu.cn或登陆http://computer.upc.edu.cn,我们完美的为您解决问题。";
    public static void main(String[] args) {
		int wrongindex1 = s.indexOf("错");
		int wrongindex2 = s.indexOf("陆");
		String right = s.replaceAll("错","措");
		right = right.replaceAll("陆","录");
    	System.out.print(wrongindex1+"\n");
    	System.out.print(wrongindex2+"\n");
    	System.out.print(right);
    }
}

  • 9
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你解决这个问题。首先需要定义一个学生类,包含学号、姓名、成绩三个属性。代码如下: ``` public class Student { private String id; // 学号 private String name; // 姓名 private int score; // 成绩 public Student(String id, String name, int score) { this.id = id; this.name = name; this.score = score; } public String getId() { return id; } public String getName() { return name; } public int getScore() { return score; } } ``` 接着,需要创建一个HashMap来存储学生信息,以学号作为键,学生对象作为值。代码如下: ``` Map<String, Student> map = new HashMap<>(); ``` 然后,输入多个学生的成绩信息,并将其存储到HashMap中。代码如下: ``` // 假设有三个学生信息:学号为001,姓名为张三,成绩为80;学号为002,姓名为李四,成绩为90;学号为003,姓名为王五,成绩为70。 Student s1 = new Student("001", "张三", 80); Student s2 = new Student("002", "李四", 90); Student s3 = new Student("003", "王五", 70); map.put(s1.getId(), s1); map.put(s2.getId(), s2); map.put(s3.getId(), s3); ``` 最后,实现根据学号的检索功能。代码如下: ``` // 假设要检索学号为002的学生信息 String id = "002"; Student student = map.get(id); System.out.println(student.getName() + "的成绩是:" + student.getScore()); ``` 输出结果为:李四的成绩是:90 注意,如果要根据姓名进行检索,则需要遍历HashMap中的每个学生对象,逐一比较姓名属性。如果存在重名的情况,则需要返回多个学生对象。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值