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));

 

posted on 2020-07-10 18:37  haoduohaoduo鱼  阅读(183)  评论(0编辑  收藏  举报