Java object类及正则表达式原理解析

网友投稿 265 2022-11-30


Java object类及正则表达式原理解析

equals方法

equals方法,用于比较两个对象是否相同

/*

描述人这个类,并定义功能根据年龄判断是否是同龄人

由于要根据指定类的属性进行比较,这时只要覆盖Object中的equals方法

在方法体中根据类的属性值进行比较

*/

class Person extends Object{

int age ;

//复写父类的equals方法,实现自己的比较方式

public boolean equals(Object obj) {

//判断当前调用equals方法的对象和传递进来的对象是否是同一个

if(this == obj){

return true;

}

//判断传递进来的对象是否是Person类型

if(!(obj instanceof Person)){

return false;

}

//将obj向下转型为Perosn引用,访问其属性

Person p = (Person)obj;

return this.age == p.age;

}

}

toString方法

toString方法返回该对象的字符串表示

public class Demo01 {

public static void main(String[] args) {

Person p=new Person("小红帽",18);

//调用父类的toString()

System.out.println(p.toString());

System.out.println(p);

}

}

String类

字符串的本质是一个字符的数组。

构造方法

String s1 = new String(); //创建String对象,字符串中没有内容

byte[] bys = new byte[]{97,98,99,100};

String s2 = new String(bys); // 创建String对象,把数组元素作为字符串的内容

String s3 = new String(bys, 1, 3); //创建String对象,把一部分数组元素作为字符串的内容,参数offset为数组元素的起始索引位置,参数length为要几个元素

char[] chs = new char[]{'a','b','c','d','e'};

String s4 = new String(chs); //创建String对象,把数组元素作为字符串的内容

String s5 = new String(chs, 0, 3);//创建String对象,把一部分数组元素作为字符串的内容,参数offset为数组元素的起始索引位置,参数count为要几个元素

String s6 = new String(“abc”); //创建String对象,字符串内容为abc

String类的方法查找

字符串缓冲区

查阅StringBuffer的API,StringBuffer又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。

StringBuffer的方法使用

对象的方法链式调用

创建一个字符串缓冲区对象。用于存储数据。

StringBuffer sb = new StringBuffer();

添加数据。不断的添加数据后,要对缓冲区的最后的数据进行操作,必须转成字符串才可以。

String str = sb.append(true).append("hehe").toString();

我们阅读StringBuilder的API说明发现,它也是一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。

正则表达式

正则表达式是一个字符串,使用单个字符串来描述、用来定义匹配规则,匹配一系列符合某个句法规则的字符串。在开发中,正则表达式通常被用来检索、替换那些符合某个规则的文本。

举例:校验qq号码.

1: 要求必须是5-15位数字

2: 0不能开头

代码演示:

String qq = "604154942";

String regex = "[1-9][0-9]{4,14}";

boolean flag2 = qq.matches(regex);

举例:校验手机号码

1:要求为11位数字

2:第1位为1,第2位为3、4、5、7、8中的一个,后面9位为0到9之间的任意数字。

代码演示:

String phone = "18800022116";

String regex = "1[34578][0-9]{9}";

boolean flag = phone.matches(regex);

举例:分割出字符串中的的数字

代码演示:

String s = "18-22-40-65";

Stringhttp:// regex = "-";

String[] result = s.split(regex);

代码演示:

String s = "18 22 40 65";

String regex = " ";

String[] result = s.split(regex);

邮箱

String reg3="[1-9A-z_][\\w]+@[A-z0-9]+(\\.+[A-z]+)+";

String em="49988http://0898@qq.com";

System.out.println(em.matches(reg3));


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java中批处理框架spring batch详细介绍
下一篇:浅谈Maven包冲突的原理及解决方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~