第七課 String類

2022-04-02 07:43:50 字數 3721 閱讀 2925

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 stringdemo01

}

4、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 是大小寫...