字串轉換
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中每一行資料,然後...