1.1.2.1 一些關于判空的差別
1為空字元串,當使用isempty();方法判空時為true;
2為空格字元串,使用isempty();方法判空時為flase;由此可見空格也算字元。
3使用isempty();方法時會出現空指針異常。
1即使為空但在常量池中任然存在,3為null空對象,是以在記憶體中沒有任何位址。
調用touppercase()和tolowercase()并不會改變aa本身的值,而是建立一片記憶體複制原字元串後進行操作,若次數太多會造成資源占用過多。
由此可見string底層是一個char類型的數組,charat()方法可以根據下标傳回對應的字元。
傳回字元串内第一個對應字元的下标,找不到傳回-1,第二個參數為從第幾位開始查找。
相應的該方法傳回字元串内倒數第一個對應的字元的下标。
substring()方法當隻有一個參數時,從該參數所指下标開始截取字元串。第二個參數位終止截取時的下标。
查詢字元串中是否含有參數字元,傳回布爾類型。
兩者都将對應字元串替換為後面的字元串,差別在于replaceall()需要經過正規表達式的判斷。
concat()方法用于拼接字元串。從輸出結果看concat()方法與字元串相加所實作的效果是一樣的.
第二部分可以看出,concat()方法并不會改變字元串aa上值,而是像上面touppercase()方法一樣重新開辟一個記憶體并複制過去原字元串進行拼接操作,過多進行此操作會占用不必要的記憶體,也可以說string是不能改變的,因為改變會造成資源浪費。
按照指定字元串進行分割,傳回值為string數組
tirm()方法用于去除字元串首尾的空格
比較大小,底層比較ascii值,前者區分大小寫,後者不區分大小寫