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

 更新时间:2020年07月20日 15:21:08   作者:haoduohaoduo鱼  
这篇文章主要介绍了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";
String 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="499880898@qq.com";
    System.out.println(em.matches(reg3));

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 取消idea双击shift键时出现的全局搜索的问题分析

    取消idea双击shift键时出现的全局搜索的问题分析

    这篇文章主要介绍了取消idea双击shift键时出现的全局搜索的问题分析,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-10-10
  • SpringBoot启动security后如何关闭弹出的/login页面

    SpringBoot启动security后如何关闭弹出的/login页面

    这篇文章主要介绍了SpringBoot启动security后如何关闭弹出的login页面问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • java获取当前时间和前一天日期(实现代码)

    java获取当前时间和前一天日期(实现代码)

    java获取当前时间和前一天日期的实现代码。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-10-10
  • IDEA插件之mybatisx 插件使用教程

    IDEA插件之mybatisx 插件使用教程

    这篇文章主要介绍了mybatisx 插件使用教程,包括插件安装自动生成代码的相关知识,本文通过实例图文相结合给大家介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • Java中Synchronized锁的使用和原理详解

    Java中Synchronized锁的使用和原理详解

    这篇文章主要介绍了Java中Synchronized锁的使用和原理详解,synchronized是 Java 内置的关键字,它提供了一种独占的加锁方式,synchronized的获取和释放锁由JVM实现,用户不需要显示的释放锁,非常方便,需要的朋友可以参考下
    2023-07-07
  • java线程池ThreadPoolExecutor实现原理详解

    java线程池ThreadPoolExecutor实现原理详解

    这篇文章主要介绍了java线程池ThreadPoolExecutor实现原理详解,ThreadPoolExecutor是线程池实现类,会动态创建多个线程,并发执行提交的多个任务,需要的朋友可以参考下
    2023-12-12
  • Java单链表的增删改查与面试题详解

    Java单链表的增删改查与面试题详解

    单链表是链表的其中一种基本结构。一个最简单的结点结构如图所示,它是构成单链表的基本结点结构。在结点中数据域用来存储数据元素,指针域用于指向下一个具有相同结构的结点。 因为只有一个指针结点,称为单链表
    2022-09-09
  • 详解Java的call by value和call by reference

    详解Java的call by value和call by reference

    在本篇文章里小编给大家总结了关于Java的call by value和call by reference的相关用法和知识点内容,需要的朋友们学习下。
    2019-03-03
  • SpringBoot访问外部文件及默认路由问题

    SpringBoot访问外部文件及默认路由问题

    这篇文章主要介绍了SpringBoot访问外部文件及默认路由问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Springboot整合zookeeper实现对节点的创建、监听与判断的案例详解

    Springboot整合zookeeper实现对节点的创建、监听与判断的案例详解

    这篇文章主要介绍了基于Springboot整合zookeeper实现对节点的创建、监听与判断,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06

最新评论