強大的swift字串,強大swift字串
Swift集百家之長,吸收了主流語言java,c,c++等的好的特性,所以它功能十分強大,今天我們就來看看它強大的字串。
首先,我們帶著這樣幾個問題去瞭解、理解swift的字串。
1、swift字串怎麼初始化的?
2、swift字串長度可變嗎?
3、swift字串是指標,還是實際的值?
4、swift有哪些特性?
下面,我來一一解答這些問題。
(1) swift 字串的初始化有2種方式,這兩種方式的結果都是一樣的。我們來初始化一個Null 字元串。
var str1 = "" // 第一種方式
var str2 = String() // 第二種方式
當初始化一個非Null 字元串時,可以這樣 var str3 = "hello word",這裡要說明的是,“”裡的值可以是任意符號,數字,文字,字母....
(2) swift字串長度是可變的,當然這隻針對於用var 定義的字串,用let定義的字串常量是不可變的。正因為這個特性,它可以和其他字元,字串通過符號“ = ”、“ += ”組合成新的字串。
var str1 = "hello"
var str2 = "world"
var str3:Character = "!" //這是定義字元的方式
var strs1 = str1 + str2 //結果為“hello word”
var strs2 = strs1 + str3 //結果為“hello word!”
(3)swift字串 是實際的值,不是指標。當把字串變數賦值給另一個值,它原來的值不變。當把字串變數當作參數傳遞時,它也是一個實際的值。
var str1 = "你好"
var str2 = str1
這時,str1的值還是“你好”,由此可見,它不是指標,是一個實際的值。
(4)swift字串有哪些特性?它的比較機制,驗證機制,遍曆機制,轉換機制,組合機制,都是它的特性。
a、比較機制。字串之間的比較是可以分多樣的。
它比較完全相等時,用“==”來串連;
它比較首碼相等時,給定一個字串首碼,然後用要比的字串,調用hasPrefix方法,參數為給定的首碼;
它比較尾碼相等時,給定一個字串尾碼,然後用要比的字串,調用hasSuffix方法,參數為給定的尾碼。
舉個例子,我們學校在開興趣班,要統計各個興趣班的人數有多少?用這個就可以很容易的找出來。
let students =["ios,謝明,s3sj101","android,胡軍,s3jn95","ios,都美君,s3jn95","支援人員,高小龍,s3jn92","資料庫,阿斯,s3jn92","資料庫,封劍,s3j101"]
要統計出 各個興趣班的人數,只需這樣做:
var ios = 0 //定義ios班的人數
var android = 0 //定義android班的人數
var technical = 0 //定義支援人員班的人數
var database = 0 // 定義資料庫班的人數
for student in students {
if student.hasPrefix("ios") {
ios++
}
if student.hasPrefix("android") {
android++
}
if student.hasPrefix("支援人員") {
technica++
}
if student.hasPrefix("資料庫") {
database++
}
}
print(“報ios班的人數\(ios)”)
print(“報android班的人數\(android)”)
print(“報支援人員班的人數\(technica)”)
print(“報資料庫班的人數\(database)”)
如果我們要統計各個原班有多少人,可以這樣做:
let students =["ios,謝明,s3sj101","android,胡軍,s3jn95","ios,都美君,s3jn95","支援人員,高小龍,s3jn92","資料庫,阿斯,s3jn92","資料庫,封劍,s3j101"]
var s3sj95 = 0 //定義s3sj95班的人數
var s3jn92 = 0 //定義s3jn92班的人數
var s3j101 = 0 //定義s3j101班的人數
for student in students {
if student.hasSuffix("s3sj95") {
s3sj95++
}
if student.hasSuffix("s3jn92") {
s3jn92++
}
if student.hasSuffix("s3j101") {
s3j101++
}
}
print(“s3sj95班的人數\(s3sj95)”)
print(“s3jn92班的人數\(s3jn92)”)
print(“s3j101班的人數\(s3j101)”)
b:驗證機制。判斷一個字串是不是為空白,我們可以用isEmpty屬性擷取
var str = " "
if str.isEmpty {
print("str是Null 字元串")
}else{
print("str是非Null 字元串")
}
執行結果為:str是Null 字元串
c:遍曆機制。我們知道,字串是有字元組成,swift可以遍曆字串中的每個字元。
var str = "helloWord"
for char in sre {
print("\(char)")
}
執行結果會把每個字元遍曆出來。
d:轉換機制。它還支援字串的大小寫轉換。通過uppercaseString和lowercaseString屬性可以做到,我們來看看:
var str = "helloWord"
var upper = " " // 定義一個存放轉化為大寫後的變數
var lower = " " //// 定義一個存放轉化為小寫後的變數
upper = str.uppercaseString
lower = str.lowercaseString
然後分別輸出就行了 ,很簡單吧。。。
e:組合機制.組合機制是它很大的一個亮點,它的長度是可變的,因此也是可以組合的。這給我們的開發帶來很大的遍曆,是我們開發人員的福音哦。
這裡就不舉例了,他們之間可以通過“+”、“+=”、也可以通過一個合法的運算式產生新的字串。最後,它還可以計算字串的總長度,
需要用到的方法是:countElements。參數為要計算的字串本身。
好了,今天的分享就到這。希望可以幫到剛剛學習ios或者想要學ios的朋友們,我也是新手,有不足和不對的地方求大神指正。讓我們一同進步!大家可以關注我的微博http://www.cnblogs.com/lb0129/