Java object類及正則表達(dá)式原理解析
equals方法
equals方法,用于比較兩個(gè)對(duì)象是否相同
/* 描述人這個(gè)類,并定義功能根據(jù)年齡判斷是否是同齡人 由于要根據(jù)指定類的屬性進(jìn)行比較,這時(shí)只要覆蓋Object中的equals方法 在方法體中根據(jù)類的屬性值進(jìn)行比較 */class Person extends Object{ int age ; //復(fù)寫父類的equals方法,實(shí)現(xiàn)自己的比較方式 public boolean equals(Object obj) { //判斷當(dāng)前調(diào)用equals方法的對(duì)象和傳遞進(jìn)來的對(duì)象是否是同一個(gè) if(this == obj){ return true; } //判斷傳遞進(jìn)來的對(duì)象是否是Person類型 if(!(obj instanceof Person)){ return false; } //將obj向下轉(zhuǎn)型為Perosn引用,訪問其屬性 Person p = (Person)obj; return this.age == p.age; }}
toString方法
toString方法返回該對(duì)象的字符串表示
public class Demo01 { public static void main(String[] args) { Person p=new Person('小紅帽',18); //調(diào)用父類的toString() System.out.println(p.toString()); System.out.println(p); }}
String類
字符串的本質(zhì)是一個(gè)字符的數(shù)組。
構(gòu)造方法
String s1 = new String(); //創(chuàng)建String對(duì)象,字符串中沒有內(nèi)容 byte[] bys = new byte[]{97,98,99,100}; String s2 = new String(bys); // 創(chuàng)建String對(duì)象,把數(shù)組元素作為字符串的內(nèi)容 String s3 = new String(bys, 1, 3); //創(chuàng)建String對(duì)象,把一部分?jǐn)?shù)組元素作為字符串的內(nèi)容,參數(shù)offset為數(shù)組元素的起始索引位置,參數(shù)length為要幾個(gè)元素 char[] chs = new char[]{’a’,’b’,’c’,’d’,’e’}; String s4 = new String(chs); //創(chuàng)建String對(duì)象,把數(shù)組元素作為字符串的內(nèi)容 String s5 = new String(chs, 0, 3);//創(chuàng)建String對(duì)象,把一部分?jǐn)?shù)組元素作為字符串的內(nèi)容,參數(shù)offset為數(shù)組元素的起始索引位置,參數(shù)count為要幾個(gè)元素 String s6 = new String(“abc”); //創(chuàng)建String對(duì)象,字符串內(nèi)容為abc
String類的方法查找
字符串緩沖區(qū)
查閱StringBuffer的API,StringBuffer又稱為可變字符序列,它是一個(gè)類似于 String 的字符串緩沖區(qū),通過某些方法調(diào)用可以改變?cè)撔蛄械拈L(zhǎng)度和內(nèi)容。
StringBuffer的方法使用
對(duì)象的方法鏈?zhǔn)秸{(diào)用
創(chuàng)建一個(gè)字符串緩沖區(qū)對(duì)象。用于存儲(chǔ)數(shù)據(jù)。StringBuffer sb = new StringBuffer();添加數(shù)據(jù)。不斷的添加數(shù)據(jù)后,要對(duì)緩沖區(qū)的最后的數(shù)據(jù)進(jìn)行操作,必須轉(zhuǎn)成字符串才可以。String str = sb.append(true).append('hehe').toString();
我們閱讀StringBuilder的API說明發(fā)現(xiàn),它也是一個(gè)可變的字符序列。此類提供一個(gè)與 StringBuffer 兼容的 API,但不保證同步。該類被設(shè)計(jì)用作 StringBuffer 的一個(gè)簡(jiǎn)易替換,用在字符串緩沖區(qū)被單個(gè)線程使用的時(shí)候(這種情況很普遍)。如果可能,建議優(yōu)先采用該類,因?yàn)樵诖蠖鄶?shù)實(shí)現(xiàn)中,它比 StringBuffer 要快。
正則表達(dá)式
正則表達(dá)式是一個(gè)字符串,使用單個(gè)字符串來描述、用來定義匹配規(guī)則,匹配一系列符合某個(gè)句法規(guī)則的字符串。在開發(fā)中,正則表達(dá)式通常被用來檢索、替換那些符合某個(gè)規(guī)則的文本。
舉例:校驗(yàn)qq號(hào)碼.1: 要求必須是5-15位數(shù)字2: 0不能開頭代碼演示:String qq = '604154942';String regex = '[1-9][0-9]{4,14}';boolean flag2 = qq.matches(regex);
舉例:校驗(yàn)手機(jī)號(hào)碼1:要求為11位數(shù)字2:第1位為1,第2位為3、4、5、7、8中的一個(gè),后面9位為0到9之間的任意數(shù)字。代碼演示:String phone = '18800022116';String regex = '1[34578][0-9]{9}';boolean flag = phone.matches(regex);
舉例:分割出字符串中的的數(shù)字代碼演示: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='[email protected]'; System.out.println(em.matches(reg3));
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. python中scrapy處理項(xiàng)目數(shù)據(jù)的實(shí)例分析2. Hybris在idea中debug配置方法詳解3. Python AutoCAD 系統(tǒng)設(shè)置的實(shí)現(xiàn)方法4. 在idea中為注釋標(biāo)記作者日期操作5. jsp cookie+session實(shí)現(xiàn)簡(jiǎn)易自動(dòng)登錄6. .NET Core Web APi類庫內(nèi)嵌運(yùn)行的方法7. .NET6使用ImageSharp實(shí)現(xiàn)給圖片添加水印8. ASP.NET MVC實(shí)現(xiàn)橫向展示購物車9. ASP.NET MVC使用Boostrap實(shí)現(xiàn)產(chǎn)品展示、查詢、排序、分頁10. .net如何優(yōu)雅的使用EFCore實(shí)例詳解
