您的位置:首页 > 编程语言 > Java开发

正则的使用1

2016-04-24 16:44 375 查看
这个代码就是构建一个学生类,重写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("不是正则表达式!");
}
}
}


关于正则的练习,一个小代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 正则 Arrays