我要做技术!!-java基础篇学习笔记&理解3---接口,正则表达式

1.接口

1.1接口概述

  • 个人认为接口和抽象类类似,但是接口不是类,接口中定义了一些未实现的方法,需要注意的是接口中不能包含实例域或者静态方法,但是可以包含常量。
    e.g定义接口的方式:
public interface Comparable{//定义接口用interface关键字
	int compareTo(Object other);//接口中定义的未实现的方法
}
  • 接口中的方法都是public默认可以不写访问修饰符。

1.2接口与抽象类的区别

  • 接口中不能包含实例域,但是抽象类中可以包含实例域。
  • 一个类可以实现多个接口,但是只能继承一个父类。
  • 抽象类可以有构造器,接口不存在构造器。
  • 抽象方法实现方式不同,抽象类通过继承,extends,接口通过实现,implements。
  • 接口和抽象类都不能实例化,但是都能声明相应类型的引用变量。
    e.g 实现一个接口
public class Compare implements Comparable{
	private int x;
	public int compareTo(Integer y){//重写了接口中的compareTo方法
		//当调用这个方法的对象的x属性比传入的实参大时返回1,相等返回0,小的时候返回-1
		if(this.x>y){
		return 1;
		}else if(this.x==y){
		return 0;
		}else{
		return -1
		}
	}
}

2正则表达式

2.1什么是java的正则表达式

  • 正则表达式就是规定了字符串的模板,利用正则表达式可以达到匹配和验证字符串的效果

2.2java的正则表达式有哪些作用

  • 用来搜索,编辑,替换和正则表达式匹配的内容

2.3如何使用正则表达式

  • 首先使用正则表达式需要声明一个模板,就是需要匹配什么样的数据。这个模板在java中的类是Pattern,可以通过Pattern regex=Pattern.complie("正则表达式");来创建匹配模板,需要匹配的数据需要调用regex变量的matcher方法(返回一个Matcher类的对象)来获得一个匹配器并传入数据。e.g. Matcher matcher=regex.matcher("需要匹配的数据");匹配成功的字符串能通过matcher.group();获取。以下有常用的几个方法
  • matcher.find();//返回是否匹配成功的boolean值,匹配成功则返回true。这里需要注意的是在获取其他匹配结果之前必须要先执行这个方法否则会抛出异常IllegalStateException("No match found")。
  • matcher.find(0);//表示从第一个字符开始匹配
  • matcher.start();//返回开始匹配到第一个字符串的索引值;.end();返回最后一个匹配到的索引值+1
  • 一些常用的正则表达式的书写规则:(前面添加反斜杠来转译)
\.匹配所有
[abc]出现a或者b或者c
[^abc]匹配除了a、b、c外所有的字符
[a-zA-Z_0-9]范围匹配,大小写字母和所有数字下划线
\\.匹配 .
\\d数字[0-9]
\\w大小写字母还有数字
c?c出现一次或者零次
c*c出现零次或多次
c+c出现一次或者多次
c{n}c刚好出现n次
c{n,}c出现n次及以上
c{n,m}c至少出现n次但不超过m次
  • e.g一个匹配邮箱的正则表达式
public class TestRegx {
public static void main(String[] args) {
	String regexString=
			"^(\\w+)@(\\d+)\\.\\w+$";//定义了一个匹配字符@数字.字符的正则表达式
	String email="mm163@163.com";
	Pattern regex=Pattern.compile(regexString);//获取正则模板
	Matcher matcher=regex.matcher(email);//获取匹配器
	while(matcher.find()){//匹配成功时执行下面代码
		System.out.println(matcher.group());//打印匹配成功的字符
		String newEmail=matcher.group();
		String newRegex="\\d+";//定义替换的正则模板
		String s="*";//使用*替换
		String result=newEmail.replaceAll(newRegex,s);//把newEmail中符合新正则模板的元素全部替换成*
		System.out.println(result);
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值