String類大雜燴

2021-10-13 23:09:42 字數 4478 閱讀 1181

字串轉換

stringbuilder類和stringbuilder類

string:字串,使用一對 「」 引起來表示

1.string宣告為final的,不可被修飾

2.string實現了serializable介面:表示字串是支援序列化的。

實現了comparable介面:表示string可以比較大小。

3.string內部定義了final char value 用於儲存字串資料

4.string:代表不可變的字串行。簡稱:不可變性。

體現:①當對字串重新賦值時,需要重寫指定記憶體區域賦值,不能使用原有的value進行賦值。

②當對現有的字串進行連線操作時,也需要重新指定記憶體區域進行賦值,不能使用原有的value進行賦值。

③當呼叫string的replace()方法修改指定字元或字串時,也需要重新指定記憶體區域進行賦值,不能使用原有的value進行賦值。

5.通過字面量的方式(區別於new)給乙個字串賦值,此時的字串值宣告在字串常量池中。

6.字串常量池中是不會儲存相同內容的字串的。

方式一:通過字面量定義的方式

方式二:通過new+構造器的方式

person類:

public

class

person

public

person

(string name, int age)

}

@test

public

void

test2()

提問:string s=new string(「abc」);方式建立物件,在記憶體中建立了幾個物件?

答:兩個,乙個是堆空間中new結構,另乙個是char[ ]對應常量池的數:「abc」。

1.常量與常量的拼接結構在常量池。且常量池中不會存在相同內容的常量。

2.只要其中有乙個是變數,結構就在堆中。

3.如果拼接的結果呼叫intern()方法,返回值就在常量池中。

@test

public

void

test3()

1.int length():返回字串的長度:return value.length。

2.char charat(int index):返回某索引處的字元。

3.boolean isempty():判斷是否是空字串。

4.string tolowercase():使用預設語言環境,將string中的所有字元轉換成小寫。

5.string touppercase():使用預設語言環境,將string中的所有字元轉換成大寫。

6.string trim():返回字串的副本,忽略前導空白和尾部空白。

7. boolean equals(object obj):比較字串的內容是否相同。

8. boolean equalsignorecase(string anotherstring):與equlas方法類似,忽略大小寫。

9.string concat(string str):將指定字串連線到此字串的結尾。等價於「+」。

10.int compareto(string anotherstring):比較兩個字串的大小。

11. string substring(int beginindex):返回乙個新的字串,他是此字串從beginindex開始擷取。

12.string substring(int beginindex,int endindex):返回乙個新字串,它是此字串從beginindex到endindex(不包含)的乙個字串。[ 左閉右開)。

@test

public

void

test1()

1.boolean endswith(string suffix):測試此字串是否以指定的字尾結束。

2.boolean startwith(string prefix):測試此字串是否以指定的字首開始。

3.boolean startwith(string prefix,int toffset):測試此字串是否以指定的字首開始。

4.boolean contains(charsequence s):當且僅當此字串包含指定的char值序列時,返回true。

5.int indexof(string str):返回指定子字串在此字串中第一次出現處的索引,不存在返回-1。

6.int indexof(string str,int fromindex):返回指定子字串在此字串中第一次出現處的索引,fromindex為查詢的起點,不存在返回-1

7.int lastindexof(string str):返回指定子字元在此字串中最右邊出現的索引,不存在返回-1。

8.int lastindexof(string str,int fromindex):返回指定子字元在此字串中最右邊出現的索引,從指定的索引開始方向搜尋,不存在返回-1。

@test

public

void

test3()

1.string replace(char oldchar,char newchar):返回乙個新的字串,newchar替換oldchar。

2.string replace(string regex,string replacement):使用給點的replacement替換此字串所有匹配給點正規表示式的子字串。

3.string replacefirst(string regex,string replacement):使用給定的replacement替換此字串匹配給定的正規表示式的第乙個子字串。

@test

public

void

test4()

1.boolean matches(string regex):告知此字串是否匹配給定的正規表示式。

1.string split(string regex):根據給定正規表示式的匹配拆分此字串。

2.string split(string regex,int limit):根據匹配給定的正規表示式來拆分此字串,最多不超過limit個,如果超過了,剩下的全部都放到最後乙個元素中。

string -->基本資料型別、包裝類:呼叫包裝類的靜態方法:par***xx(str)。

基本資料型別、包裝類 -->string:呼叫string過載的valueof(***)。或者***+""。

@test

public

void

test1()

string ---> char:呼叫string的tochararray()

char ---> string:呼叫string的構造器

@test

public

void

test2()

char[

] arr=

newchar

; string str2 =

newstring

(arr)

; system.out.

println

(str2)

;//hello

}

編碼:string --> byte:呼叫string的getbytes()。

解碼:byte -->string:呼叫string的構造器。

@test

public

void

test3()

注意:解碼時,要求使用的字符集必須與解碼時的字符集一致,否則會出現亂碼。

string:不可變的字串行;底層使用char儲存;

stringbuffer:可變的字串行;執行緒安全,效率低;底層使用char儲存;

stringbuilder:可變的字串行;執行緒不安全,效率高(jdk5.0新增的);底層使用char儲存;

原始碼分析:

stringbuffer sb3=new stringbuffer(「abc」);

system.out.println(sb3.length());

運算結果:3。

問題2:

擴容問題:如果要新增的資料底層陣列盛不下了,那就需要擴容底層的陣列。預設情況下,擴容為原來容量的2倍+2,同時將原有陣列中的元素複製到新的陣列中。

對比string、stringbuffer、stringbuilder三者效率問題:

從高到低:stringbuilder >stringbuffer >string

分頁大雜燴

文章中提到了linq,所以先介紹一下它,好讓我們有個初步認識 linq是語言級整合查詢 language integrated query linq是一種用來進行資料訪問的程式設計模型,使得.net語言可以直接支援資料查詢 linq發布於.net framework 3.5 linq體現了物件導向程...

C指標大雜燴

include int func int a,int b int main void int p int 可以看成int a int 這是乙個指標指向引數是int,返回值是int的函式。函式指標。int p int 這是乙個函式,他的引數是乙個整形,返回值是乙個指向整形的指標。include int...

問題大雜燴(一)

最近遇到了很多問題,記錄一下,以便後續檢視 a.檢查網路,檢視不同的節點之間的網路是否可達 2.檔案等資料處理 a.從上百份的檔案中提取特定的資料,使用awk方法進行統計出來,通過寫shell指令碼處理資料。b.awk用法 shell小指令碼 讀取提取到的資料到txt中,讀取txt中每一行資料,然後...