第五章(1)、java常用类-Object、String和正则表达式

一、Object

        前面讲述面向对象接口的时候说过,Object是所有类的超类(父类或基类),所有的类都直接或间接的继承了这个类。

Object类中的成员方法(可在网上搜索java api文档进行查看)。

1)public int hashCode():返回对象的哈希码值,是根据哈希算法计算出来的值。

2)public final Class getClass():返回对象的运行时类。

结果:

3)public String toString():返回对象的字符串示例。

结果:

4)public boolean equals(Object o):比较对象之间是否相等。

        在前面有 == 这个比较符,在基本数据类型中,比较的是数值的大小,在引用数据类型中,比较的是地址值是否相同。 使用equals()方法,默认比较的是地址值,这个比较意义不大,所以要重写这个方法,重写这个方法也是使用开发工具自动生成,快捷键(alt+Insert)。一般重写equals()方法时,都是和hashCode()方法一起重写。

结果:

5)protected void finalize():由对象的垃圾回收期调用,用于回收垃圾对象,具体回收时机由系统决定。

6)protected Object clone():某个类实现了Cloneable接口,该方法就能“复制(克隆)”一个对象,然后重新给这个对象重新分配内存空间。

        克隆分为浅克隆和深克隆,浅克隆:基本数据类型属性完全重新创建,引用类型属性依然和原来的对象共用,称为浅克隆;深克隆:所有数据类型的属性都完全被创建,称为深克隆。

浅克隆代码:

结果:

深克隆代码:

结果:

二、String

        String称作字符串,它是由多个字符(char)组成的数据,可以看做是字符数组。

1)String的构造方法:

        public String():无参构造方法

        public String(byte[] bytes):把字节(byte)数组转成字符串

        public String(byte[] bytes,int index,int length):把字节(byte)数组的一部分(从索引index处到指定长度)转成字符串

        public String(char[] value):把字符(char)数组转成字符串

        public String(char[] value,int index,int count):把字符(char)数组的一部分(从索引index处到指定长度)转成字符串

        public String(String original):把字符串常量值(例如:"hello world")转成字符串

结果:

2)String的判断方法:

        boolean equals(Object obj):判断两个字符串的内容是否相同,区分大小写。例如:"hello"和"HELlo"是不一样的

        boolean equalsIgnoreCase(String str):判断字符串的内容是否相同,忽略大小写。例如:"hello"和"HELlo"是一样的

        boolean contains(String str):判断长的字符串中是否包含短的字符串。例如"helloworld"包含了"hello"

        boolean startsWith(String str):判断字符串是否以某个指定的字符串开头。例如"helloworld"是以"h"开头 或 "helloworld"是以"he"开头 或 "helloworld"是以"hel,,,"开头

        boolean endsWith(String str):判断字符串是否以某个指定的字符串结尾。例如"helloworld"是以"d"结尾或 "helloworld"是以"ld"结尾 或 "helloworld"是以"...ld"结尾

        boolean isEmpty():判断字符串内容是否为空。

结果:

3 )String的转换方法:

        byte[] getBytes():把字符串转换为字节(byte)数组。

        char[] toCharArray():把字符串转换为字符(char)数组。

        static String valueOf(char[] chs):把字符(char)数组转成字符串。

        static String valueOf(int i):把int类型的数据转成字符串。

                   提示:String类的valueOf方法可以把任何类型的数据转成字符串。

结果:

        String toLowerCase():把字符串内容全部转成小写。

        String toUpperCase():把字符串内容全部转成大写。

        String concat(String str):把字符串拼接起来和“+”功能一样,但是它们之间是有区别的。

结果:

4) 替换功能:

        String replace(char old,char new):使用新的字符(char)替换旧的字符

        String replace(String old,String new)使用新的字符串(String)替换旧的字符串

        String trim(): 去除字符串两端空格    

结果:

5)按字典顺序比较两个字符串  

         int compareTo(String str):区别大小写

         int compareToIgnoreCase(String str):不区分大小写

结果:

6)String的截取方法:

        String substring(int beginIndex):从一个索引位置开始,截取剩下的所有字符;

        String substring(int beginIndex, int endIndex):返回两个索引位置之间(不包括第endIndex个字符)的所有字符;

7)String的分割方法:

        public String[] split(String regex):根据某种规则去分割字符串,得到的是一个String数组

结果:

注意:字符串一旦被赋值,就不能改变。字符串还有很多方法,可以上网搜索“java api”去查看这些方法的使用。

三、正则表达式

        正则表达式其实就是一种规则,它是由一些有特殊意义的字符(也称作元字符)组成,,例如:\d表示的是数字。在使用手机号码注册账号的时候,如果手机号码输入不正确,就会给出提示,这些一般都是用正则表达式去检查输入的手机号是否正确。

正则表达式规则:

1)字符

        x 字符 x。例如:'a'表示字符a

        \\ 反斜线字符。

        \n 新行(换行)符 ('\u000A')

        \r 回车符 ('\u000D')

    

2)边界匹配器

        ^ 行的开头

        $ 行的结尾

        \b 单词边界: 不是单词字符的地方。

3)字符类

        [abc] a、b 或 c

        [^abc] 任何字符,除了 a、b 或 c

        [a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内

        [0-9] 0到9的字符都包括

    

4)预定义字符类

        . 任何字符。. 本来就是字符,如果想单独表示 . 就要使用\.进行转义

        \d 数字:[0-9]

        \w 单词字符:[a-zA-Z_0-9]

    

5)Greedy 数量词

        X? X,一次或一次也没有

        X* X,零次或多次

        X+ X,一次或多次

        X{n} X,恰好 n 次

        X{n,} X,至少 n 次

        X{n,m} X,至少 n 次,但是不超过 m 次

正则表达式提供了两个类: Pattern(正则表达式编译后的表现形式)和Matcher(通过字符串调用判断方法(boolean matches(String regex))返回值获得)

结果:

公众号二维码

猜你喜欢

转载自blog.csdn.net/itmzz/article/details/86604028
今日推荐