字串緩衝區StringBuffer類,正規表示式

2022-02-27 05:19:10 字數 4732 閱讀 7150

stringbuffer類

stringbuffer又稱為可變字串行,它是乙個類似於 string 的字串緩衝區,通過某些方法呼叫可以改變該序列的長度和內容。它是乙個容器,容器中可以裝很多字串。並且能夠對其中的字串進行各種操作。

方法:

package

com.oricle.stringbuffer;

public

class

stringbuffer

}

效果顯示:

正規表示式

正規表示式(英語:regular expression,在**中常簡寫為regex)。

正規表示式是乙個字串,使用單個字串來描述、用來定義匹配規則,匹配一系列符合某個句法規則的字串。在開發中,正規表示式通常被用來檢索、替換那些符合某個規則的文字。在pattern類中有正規表示式的的規則定義,正規表示式中明確區分大小寫字母。

正規表示式語法規則:

字元:x

含義:代表的是字元x

例如:匹配規則為"a",那麼需要匹配的字串內容就是 」a」

字元:\\

含義:代表的是反斜線字元'\'

例如:匹配規則為"\\"那麼需要匹配的字串內容就是 」\」

字元:\t

含義:製表符

例如:匹配規則為"\t" ,那麼對應的效果就是產生乙個製表符的空間

字元:\n

含義:換行符

字元:\r

含義:回車符

字元類:[abc]

含義:代表的是字元a、b 或 c

例如:匹配規則為"[abc]",那麼需要匹配的內容就是字元a,或者字元b,或字元c的乙個

字元類:[^abc]

含義:代表的是除了 a、b 或 c以外的任何字元

例如:匹配規則為"[^abc]",那麼需要匹配的內容就是不是字元a,或者不是字元b,或不是字元c的任意乙個字元

字元類:[a-za-z]

含義:代表的是a 到 z 或 a 到 z,兩頭的字母包括在內

例如:匹配規則為"[a-za-z]",那麼需要匹配的是乙個大寫或者小寫字母

字元類:[0-9]

含義:代表的是 0到9數字,兩頭的數字包括在內

例如:匹配規則為"[0-9]",那麼需要匹配的是乙個數字

字元類:[a-za-z_0-9]

含義:代表的字母或者數字或者下劃線(即單詞字元)

例如:匹配規則為" [a-za-z_0-9] ",那麼需要匹配的是乙個字母或者是乙個數字或乙個下滑線

預定義字元類:.

含義:代表的是任何字元

例如:匹配規則為" . ",那麼需要匹配的是乙個任意字元。如果,就想使用 . 的話,使用匹配規則"\\."來實現

預定義字元類:\d

含義:代表的是 0到9數字,兩頭的數字包括在內,相當於[0-9]

例如:匹配規則為"\d ",那麼需要匹配的是乙個數字

預定義字元類:\w

含義:代表的字母或者數字或者下劃線(即單詞字元),相當於[a-za-z_0-9]

例如:匹配規則為"\w ",,那麼需要匹配的是乙個字母或者是乙個數字或乙個下滑線

邊界匹配器:^

含義:代表的是行的開頭

例如:匹配規則為^[abc][0-9]$,那麼需要匹配的內容從[abc]這個位置開始, 相當於左雙引號

邊界匹配器:$

含義:代表的是行的結尾

例如:匹配規則為^[abc][0-9]$,那麼需要匹配的內容以[0-9]這個結束, 相當於右雙引號

邊界匹配器:\b

含義:代表的是單詞邊界

例如:匹配規則為"\b[abc]\b",那麼代表的是字母a或b或c的左右兩邊需要的是非單詞字元([a-za-z_0-9])

數量詞:x?

含義:代表的是x出現一次或一次也沒有

例如:匹配規則為"a?",那麼需要匹配的內容是乙個字元a,或者乙個a都沒有

數量詞:x*

含義:代表的是x出現零次或多次

例如:匹配規則為"a*",那麼需要匹配的內容是多個字元a,或者乙個a都沒有

數量詞:x+

含義:代表的是x出現一次或多次

例如:匹配規則為"a+",那麼需要匹配的內容是多個字元a,或者乙個a

數量詞:x

含義:代表的是x出現恰好 n 次

例如:匹配規則為"a",那麼需要匹配的內容是5個字元a

數量詞:x

含義:代表的是x出現至少 n 次

例如:匹配規則為"a",那麼需要匹配的內容是最少有5個字元a

數量詞:x

含義:代表的是x出現至少 n 次,但是不超過 m 次

例如:匹配規則為"a",那麼需要匹配的內容是有5個字元a 到 8個字元a之間

正規表示式常用方法

例子:matches例子:

//

11位的手機號碼,第1位為1,第2位為3、4、5、7、8中的乙個,

//後面9位為0到9之間的任意數字。

string regex="1[34578][0-9]";

string str ="13855555555";

system.out.println(str.matches(regex));

//true

/*校驗qq號碼.

1: 要求必須是5-15位數字

2: 0不能開頭

*/string r="[1-9][0-9]";

string w="1972680739";

system.out.println(w.matches(r));

//true

split例子:

//

舉例:分割出字串中的的數字

//**演示:

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

replaceall例子:

//

舉例:把文字中的數字替換成*

//**演示:

string s = "hello12345world6789012";

string regex = "[0-9]";

string result = s.replaceall(regex, "*");

正規表示式練習

//

匹配正確的數字

匹配規則:

匹配正整數:」\\d+」

匹配正小數:」\\d+\\.\\d+」

匹配負整數:」-\\d+」

匹配負小數:」-\\d+\\.\\d+」

匹配保留兩位小數的正數:」\\d+\\.\\d」

匹配保留1-3位小數的正數:」\\d+\\.\\d」

//匹配合法的郵箱

匹配規則:

」[a-za-z_0-9]+@[a-za-z_0-9]+(\\.[a-za-z_0-9]+)+」

」\\w+@\\w+(\\.\\w+)+」

//獲取ip位址(192.168.1.100)中的每段數字

匹配規則:

」\\.」

字串緩衝區

在學習string類時,api中說字串緩衝區支援可變的字串,什麼是字串緩衝區呢?接下來我們來研究下字串緩衝區。查閱stringbuffer的api,執行緒安全的可變字串行。乙個類似於 string 的字串緩衝區,但不能修改。雖然在任意時間點上它都包含某種特定的字串行,但通過某些方法呼叫可以改變該序列...

StringBuffer字串緩衝區

構造乙個其中不帶字元的字串緩衝區,初始容量為 16 個字元。特點 1 可以對字串內容進行修改。2 是乙個容器。3 是可變長度的。4 緩衝區中可以儲存任意型別的資料。5 最終需要變成字串。容器通常具備一些固定的方法 1,新增。stringbuffer insert index,data 在指定位置插入...

Java之字串和字串緩衝區

一 字串 字串用於描述字串常用事物,是乙個特殊的物件,它的最大的特點是一旦初始化就不可以被改變,存在於常量池中。二 字串的方法 1 獲取 1 length 字串包含的字元數,既字串長度,返回值型別為int。2 charat int index 根據位置獲取位置上的某個字串,返回值型別為char,當i...