Java object類(lèi)及正則表達(dá)式原理解析
equals方法
equals方法,用于比較兩個(gè)對(duì)象是否相同
/*
描述人這個(gè)類(lèi),并定義功能根據(jù)年齡判斷是否是同齡人
由于要根據(jù)指定類(lèi)的屬性進(jìn)行比較,這時(shí)只要覆蓋Object中的equals方法
在方法體中根據(jù)類(lèi)的屬性值進(jìn)行比較
*/
class Person extends Object{
int age ;
//復(fù)寫(xiě)父類(lèi)的equals方法,實(shí)現(xiàn)自己的比較方式
public boolean equals(Object obj) {
//判斷當(dāng)前調(diào)用equals方法的對(duì)象和傳遞進(jìn)來(lái)的對(duì)象是否是同一個(gè)
if(this == obj){
return true;
}
//判斷傳遞進(jìn)來(lái)的對(duì)象是否是Person類(lèi)型
if(!(obj instanceof Person)){
return false;
}
//將obj向下轉(zhuǎn)型為Perosn引用,訪(fǎng)問(wèn)其屬性
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)用父類(lèi)的toString()
System.out.println(p.toString());
System.out.println(p);
}
}
String類(lèi)
字符串的本質(zhì)是一個(gè)字符的數(shù)組。
構(gòu)造方法
String s1 = new String(); //創(chuàng)建String對(duì)象,字符串中沒(méi)有內(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類(lèi)的方法查找




字符串緩沖區(qū)
查閱StringBuffer的API,StringBuffer又稱(chēng)為可變字符序列,它是一個(gè)類(lèi)似于 String 的字符串緩沖區(qū),通過(guò)某些方法調(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說(shuō)明發(fā)現(xiàn),它也是一個(gè)可變的字符序列。此類(lèi)提供一個(gè)與 StringBuffer 兼容的 API,但不保證同步。該類(lèi)被設(shè)計(jì)用作 StringBuffer 的一個(gè)簡(jiǎn)易替換,用在字符串緩沖區(qū)被單個(gè)線(xiàn)程使用的時(shí)候(這種情況很普遍)。如果可能,建議優(yōu)先采用該類(lèi),因?yàn)樵诖蠖鄶?shù)實(shí)現(xiàn)中,它比 StringBuffer 要快。
正則表達(dá)式
正則表達(dá)式是一個(gè)字符串,使用單個(gè)字符串來(lái)描述、用來(lái)定義匹配規(guī)則,匹配一系列符合某個(gè)句法規(guī)則的字符串。在開(kāi)發(fā)中,正則表達(dá)式通常被用來(lái)檢索、替換那些符合某個(gè)規(guī)則的文本。
舉例:校驗(yàn)qq號(hào)碼.
1: 要求必須是5-15位數(shù)字
2: 0不能開(kāi)頭
代碼演示:
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="499880898@qq.com";
System.out.println(em.matches(reg3));
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java實(shí)現(xiàn)租車(chē)管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)租車(chē)管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01
Java BeanMap實(shí)現(xiàn)Bean與Map的相互轉(zhuǎn)換
這篇文章主要介紹了利用BeanMap進(jìn)行對(duì)象與Map的相互轉(zhuǎn)換,通過(guò)net.sf.cglib.beans.BeanMap類(lèi)中的方法來(lái)轉(zhuǎn)換,效率極高,本文給大家分享實(shí)現(xiàn)代碼,感興趣的朋友一起看看吧2022-11-11
IDEA的Swing可視化插件JFormDesigner詳解
JFormDesigner是一個(gè)專(zhuān)業(yè)的軟件應(yīng)用程序,專(zhuān)門(mén)用于幫助您開(kāi)發(fā)Java?Swing用戶(hù)界面,而無(wú)需具備編程技能。它可作為獨(dú)立實(shí)用程序使用,也可以將其用作各種IDE的插件,本文給大家介紹idea?Swing可視化插件,感興趣的朋友一起看看吧2022-06-06
Java實(shí)例項(xiàng)目零錢(qián)通的實(shí)現(xiàn)流程
本篇文章為你帶來(lái)Java的一個(gè)新手實(shí)戰(zhàn)項(xiàng)目,是一個(gè)零錢(qián)通系統(tǒng),項(xiàng)目來(lái)自于B站韓順平老師,非常適合新手入門(mén)練習(xí),感興趣的朋友快來(lái)看看吧2022-03-03
Java無(wú)限級(jí)樹(shù)(遞歸)超實(shí)用案例
下面小編就為大家?guī)?lái)一篇Java無(wú)限級(jí)樹(shù)(遞歸)超實(shí)用案例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11
Java設(shè)置session超時(shí)的幾種方式總結(jié)
這篇文章主要介紹了Java設(shè)置session超時(shí)的幾種方式總結(jié)的相關(guān)資料,需要的朋友可以參考下2017-07-07

