我是靠谱客的博主 慈祥网络,最近开发中收集的这篇文章主要介绍java -day03 正则表达式作业,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

正则表达式

基本正则表达式简介

[zdf]代表中括号内任意一个字符
[a-z]代表从a到z中间的一个    
[^abc]代表除了abc的任意字符
[a-zA-Z0-9]a-z,A-Z,0-9中任意一个字符
[a-z&&[^bc]]a-z中除了bc以外任意一个字符,其中&&表示“与”的关系
(x表示一个字符)
({n}表示 重复出现n个)
({n,}表示 重复出现大于n个)
({n,m}表示重复出现大于n但小于m个)
X?表示一个或0个x
X*表示0个或任意多个X
X+表示一个到任意多个X(大于等于1个X)
X{n}表示n个X
X{n,}表示n个到任意多个X(大于等于n个X)
X{n,m}表示n个到m个X
.任意一个字符
d任意一个数字字符,相当于[0-9]
w单字符 ,相当于[a-zA-Z0-9]
s空白字符,相当于[tnxOBfr]
D非数字字符
W非单词字符
S非空白字符

分组: ()圆括号表示分组,可以将一系列正则表达式看做一个整体,
分组时可以使用“|”表示“或”关系,
例如:匹配手机号码前面的区号:(+ 86|0086)?s?d{11}
上述例子中,圆括号表示这里需要出现”+86”或者“0086"

^ 代表字符串开始
$ 代表字符串结束

matches(String regex);boolean该方法匹配目标字符串是否符合给定的格式要求,符合返回true 否则返回false


String regex="^\w+[@]\w+(\.[a-z]+)+$";//格式
System.out.println(regex);
String str = "lyya1@qq.com";
System.out.println(str.matches(regex));
String regex1 = "[w]{3}\.\w+(\.[a-z]+)+";
str="www.sxau.edu.cn";
System.out.println(str.matches(regex1));
String regex2 = "\d{15}(\d{2}[0-9Xx])?";
str = "123456789123456789";
System.out.println(str.matches(regex2));

split(String regex);String[]  根据给定的字符格式来拆解字符串


/*
* 根据符号拆分时,连续出现该符号 (该字符出现的位置在开头和中间),拆分后的结果是空字符
*
*/
String regex3 = ",";//根据,来拆分 返回String[]
System.out.println(str1);
String[] m = str1.split(regex3);
System.out.println(Arrays.toString(m));

String str2 = ",,,rt,fwe,,g,,egher,,,,,,";
System.out.println(str2);
String regex4=",+";
String []s = str2.split(regex4);
//
System.out.println(Arrays.toString(s));
/*根据给定的字符格式来拆解字符串
* split(String regex);String[]
*/
System.out.println(s.length);
for(int i=0;i<s.length;i++) {
System.out.println(s[i]);
}

replaceAll(String oldatr,String new Str);String 将字符串中满足格式要求的部分内容进行替换


/*
* 将字符串中满足格式要求的部分内容进行替换
* replaceAll(String oldatr,String new Str);String
*/
String str ="123a48dsdf123asdf123asdf";
str = str.replaceAll("[12a]", "###");
System.out.println(str);
Scanner scn = new Scanner(System.in);
String str1 =
scn.next();
str1 = str1.replaceAll("1","*");
System.out.println(str1);

作业

 

  1. 编写RegExUtils类,提供静态方法实现对身份证号码、邮政编码、手机号码的合法性校验
  2. 重写员工类(Emp)的equals和toString方法

在面向对象的课程中,我们曾使用过Emp类,本案例要求重写Emp类的toString方法和equals方法,详细要求如下:

1),重写Emp类的toString方法,返回Emp对象的名字、年龄、性别和工资信息,例如:张三,23,男,5000。

2),重写Emp类的equals方法,两个Emp引用变量相等的条件是名字相等。

  1. 输入数字字符串,转换为整数或浮点数

用户从控制台接收一个字符串,通过程序判断该字符串是整数,还是小数。如果既不是整数也不是小数,程序输出“数字格式不正确”。程序交互过程如下所示:

用户输入整数字符串的情况,如图-1所示:

图- 1

用户输入为小数的情况,如图-2所示:

 

图- 2

用户输入的既不是整数也不是小数的情况,如图-3所示:

 

图- 3

package day03;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
System.out.println("请输入一个数字:");
String str = scn.next();
String regex = "\d+[.]?\d+";
if(str.matches(regex)) {
String[] arr = str.split("\.");
if(arr.length==2) {
System.out.println(str + "是小数");
}else {
System.out.println(str + "是整数");
}
}else {
System.out.println("数字格式不正确");
}
}
}
package day03;
import java.util.Scanner;
public class RegExUtils {
public static void main(String[] args) {
//身份证号
//d{15}(d{2}[0-9Xx])?
String id="123456369852147789";
String mail="033100";
String phone = "18835469024";
System.out.println(RegExUtils.idregex(id));
System.out.println(RegExUtils.mailRegex(mail));
System.out.println(RegExUtils.phoneRegex(phone));
}
public static boolean idregex(String str) {
String idRegex ="\d{15}(\d{2}[0-9Xx])?";
return str.matches(idRegex);
}
public static boolean mailRegex(String str) {
String mailRegex ="\d{6}";
return str.matches(mailRegex);
}
public static boolean phoneRegex(String str) {
String phoneRegex ="\d{11}";
return str.matches(phoneRegex);
}
}
package day03;
public class Emp {
/*
在面向对象的课程中,我们曾使用过Emp类,本案例要求重写Emp类的toString方法和equals方法,详细要求如下:
1),重写Emp类的toString方法,返回Emp对象的名字、年龄、性别和工资信息,例如:张三,23,男,5000。
2),重写Emp类的equals方法,两个Emp引用变量相等的条件是名字相等。
*/
public static void main(String[] args) {
Emp emp = new Emp("张三",15,"男",9223);
Emp emp1= new Emp("张四",15,"男",9223);
System.out.println(emp.toString());
System.out.println(emp.equals(emp1));
}
private String name;
private int age;
private String sex;
private int salary;
public Emp(String name, int age, String sex, int salary) {
this.name = name;
this.age = age;
this.sex = sex;
this.salary = salary;
}
public String toString() {
String str="";
str+=this.name+",";
str+=String.valueOf(this.age)+",";
str+=this.sex+",";
str+=String.valueOf(this.salary)+"。";
return str;
}
public boolean equals(Emp emp) {
boolean b = this.name.equals(emp.name);
return b;
}
}

最后

以上就是慈祥网络为你收集整理的java -day03 正则表达式作业的全部内容,希望文章能够帮你解决java -day03 正则表达式作业所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部