1、string的兩種例項化方法
string本身是乙個類,在string類中定義了如下的構造方法:
public string (string original)
可以接收乙個string類的物件,並重新例項化string物件,除了此方法之外,string還可以採用直接賦值的方式進行物件的例項化。
public class stringdemo01此時,兩個string型別的物件都例項化。}
2、string的比較方式
public class stringdemo01從記憶體關係來分析結果:}
得到乙個結果,實際上對於「==」,比較的是兩個物件的位址是否相等,具體來講實際上比較的是位址的值,因為位址是以數值的形式存在的。
public boolean equals(string str)
比如:使用equals()修改程式
public class stringdemo01此時,因為三個字串的內容完全相等,所以此時equals用於比較字串內容。}
3、乙個字串實際上就是string的匿名物件
乙個字串是使用「"」括起來的,那麼乙個字串的常量實際上本身就屬於string的乙個匿名物件。
public class stringdemo014、string的兩種例項化方式的區別記憶體圖形表示:}
string str1 = "hello" ;
現在在堆記憶體空間中,只開闢了有乙個空間,不會產生多餘的內容。
現在使用關鍵字new的方式:
可以發現,程式開闢了兩個空間,與直接賦值相比,肯定使用直接賦值的方式方便,所以在開發中絕對不能使用關鍵字new呼叫string(string original)的構造方法。
而且,如果使用直接賦值的方式也可以減少堆記憶體的開銷。
public class stringdemo01實際上,以上的三個物件表示的都是同乙個空間的引用,因為對於string來講,使用直接賦值的方式,會在字串池中儲存內容。如果之後再宣告字串的時候發現內容相同,則不會重新開闢空間,而是從記憶體池中取出資料繼續使用。}
5、字串的內容一旦宣告之後則無法修改
public class stringdemo01雖然最終輸出的結果改變了,但是字串的內容沒有改變:}
}}以上的操作**要不斷的斷開已有的連線,指向新連線100次,整體**的效能及其低,所以遇到此類絕對不要使用。
6、string的常用操作方法
(1)、字元與字串
在各個語言中實際上個乙個字串就表示一組字元。所以在string類中提供了以下的方法操作字元與字串間的轉換關係:
根據字串中的索引找到指定位置的字元:public char charat(int index)
將字串變為字元陣列:public char tochararray()
將字元陣列變為字串:
將全部的字元陣列變為string型別:public string(char value)
將部分的字元陣列變為string型別:public string(char value, int offset, int count)
例1:取出字串中指定位置的字元
public class stringdemo01例2:字串 字元陣列}
public class stringdemo01(3)、判斷是否以指定的字串開頭或結尾}
判斷是否以指定的字串開頭:public boolean sttswith(string prefix)
判斷是否以指定的字串結尾:public boolean endswith(string suffix)
例:驗證操作
public class stringdemo01(4)、替換操作}
使用以下的方法可以完成替換的操作:
public string replaceall(string regex, string replacement)
例:替換內容
public class stringdemo01(5)、字串擷取}
使用以下兩個方法可以完成字串的擷取操作:
全部擷取:public string substring(int beginindex)
部分擷取:public string substring(int beginindex, int endindex)
例:驗證操作
public class stringdemo01(6)、字串的拆分操作}
可以將字串按照指定的內容進行拆分操作:
public string split(string regex)
例:拆分字串
public class stringdemo01(7)、字串查詢}}
如果需要在乙個字串中查詢是否存在指定的內容,可以使用以下的兩個方法:
取得指定字串的位置:public int indexof(string str)
此方法返回int型資料,如果查詢到了則返回位置,查詢不到,返回-1
從指定位置開始查詢:public int indexof(string str, int fromindex)
直接查詢:public boolean contains(string s)
例1:查詢操作
public class stringdemo01例2:查詢位置}
public class stringdemo01例3:指定查詢的開始位置}}
public class stringdemo01(8)、字串的其他操作}
去掉左右空格:public string trim()
取得字串長度:public int length()
轉大寫:public string touppercase()
轉小寫:public string tolowercase()
例:驗證操作
public class stringdemo01【2012-01-03】}
第七課類和結構體
類和結構體是人們構建 所用的一種通用且靈活的構造體。為了在類和結構體中實現各種功能,我們必須要嚴格按照對於常量,變數以及函式所規定的語法規則來定義屬性和新增方法。乙個類的例項,被成為物件。swift 中類和結構體有很多共同點。1 類和結構體對比 共同處 定義屬性用於儲存值 定義方法用於提供功能 定義...
C語言第七課
主要內容 結構體 很重要,掌握 一 結構體的宣告 結構體是一種比較靈活的資料型別,與oc要學的類很相似 結構體是一種自己定義的資料型別示例 struct 結構體名 student 定義乙個學生型別 由結構體型別修飾的變數,叫結構體變數 定義 struct 結構體名 變數名 示例 struct stu...
第七課 C變數
第七課c變數 7.1 c 變數介紹 變數是程式可操作的儲存區的名稱。c 中每個變數都有特定的型別,型別決定了變數儲存的大小和布局,該範圍內的值都可以儲存在記憶體中,運算子可應用於變數上。變數的名稱可以由字母 數字和下劃線字元組成。它必須以字母或下劃線開頭。大寫字母和小寫字母是不同的,因為c 是大小寫...