正则的使用1

这个代码就是构建一个学生类,重写toString和compareTo方法,需要注意compareTo的重写规则(孰能生巧),toString就不提了。然后是TestDemo里的Arrays方法,对 对象进行自然的排序,输出的时候注意下方式(孰能生巧)。而且这个Arrays自我感觉非常的好用!

package Pattern_Matcher;

import java.util.Arrays;

/**
 * --------------逆水行舟,不进则退-------------
 * 
 * @outhor:Wang
 * @CO:cfxy
 * @version2.0
 */
class Student implements Comparable<Student> {
    private String name;
    private int age;
    private double score;

    public Student() {

    }

    public Student(String name, int age, double score) {
        this.name = name;
        this.age = age;
        this.score = score;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return this.name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return this.age;
    }

    public void setScore(double score) {
        this.score = score;
    }

    public double getScore() {
        return this.score;
    }

    // 姓名:年龄:成绩|姓名:年龄:成绩|姓名:年龄:成绩|…”
    @Override
    public String toString() {
        return "姓名:" + this.name + "\t年龄:" + this.age + "\t成绩:" + this.score;
    }

    @Override
    public int compareTo(Student s) {
        if (this.score > s.score) {
            return 1;
        } else if (this.score < s.score) {
            return -1;
        } else {
            if (this.age > s.age) {
                return 1;
            } else if (this.age < s.age) {
                return -1;
            } else {
                return 0;
            }
        }
    }
}

public class 正则和学生的比较 {
    public static void main(String[] args) {
        // 测试自己写的compareTo是否能用
        // 假装这里有5个学生
        String str = "SMITH:19:97.1|ALLEN:18:90.1|KING:20:95.2|Wang:20:97.1|Wang:10:97.1";
        String regex = "([a-zA-Z]+:\\d{1,3}:\\d{1,3}(\\.\\d{1,2})\\|)+"
                + "([a-zA-Z]+:\\d{1,3}:\\d{1,3}(\\.\\d{1,2})?)?"; // 一次或者一次也沒有(但是至少得出现一次啊?!)
        if (str.matches(regex)) {
            String[] regexs = str.split("\\|"); // 按正则拆分
            // 创建一个Student数组,存放若干的学生(其大小等于拆分出来的regexs的大小)
            Student stu[] = new Student[regexs.length];
            for (int i = 0; i < regexs.length; i++) {
                String[] temp = regexs[i].split(":");
                // 实例化数组对象
                stu[i] = new Student(temp[0], Integer.parseInt(temp[1]),
                        Double.parseDouble(temp[2]));
            }
            Arrays.sort(stu);   //把stu排序了(方法就是自己定义的那个compareTo方法)
            for (int x = 0; x < stu.length; x++) {
                System.out.println(stu[x].toString());
            }
        } else {
            System.out.println("不是正则表达式!");
        }
    }
}

关于正则的练习,一个小代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值