Swift 五 字串和字元

2021-07-06 08:07:02 字數 3807 閱讀 7035

1、swift入門學習筆記(第一版),對swift的基礎知識點進行梳理總結。知識點一直在變,只是作為參考,以蘋果官方文件為準~

2、在學習完基本的知識點以後會結合官方文件及相關資料,在此版本的基礎上進行新增更改。

//字串

let datequestion =

"the month is "

let datenum =

10//var datestr = datequestion + datenum //swift不支援隱式型別轉換,需要顯式

//字串之間可以相加

var datestr = datequestion +

string(datenum) //顯式型別轉換

datestr +=

" bingo"

print(datestr)

let month =

10let day =

19let

date

="今天是 \(month)月\(day)日"

//在oc中需要用%傳入值,而swift不用

print(date)

output:

the month

is11 bingo

今天是 11月1日

1、轉義字元\0(空字元)、\(反斜線)、\t(水平製表符)、\n(換行符)、\r(回車符)、\」(雙引號)、\』(單引號)。

2、unicode 標量,寫成\u(u為小寫),其中n為任意一到八位十六進製制數且可用的 unicode 位碼。

每乙個 swift 的character型別代表乙個可擴充套件的字形群。 乙個可擴充套件的字形群是乙個或多個可生**類可讀的字元 unicode 標量的有序排列。

let eacute:character = "\u"

print(eacute) //單一的swift的character值,同時代表乙個可擴充套件的字元群

let combinedeacute: character = "\u\u"

print(combinedeacute) //乙個標準字母e加上乙個急促重音的標量使其與前者相同

output:兩者得到的 結果都是「字母e的第二聲」

é

é

var testcount = "cafe"

print("testcount has \(testcount.characters.count) characters")

testcount += "\u"

print("testcount has \(testcount.characters.count) characters")

output:

testcount has 4

characters

testcount has 4

characters

結果是相同的。

1、可擴充套件的字元群集可以組成乙個或者多個 unicode 標量,則不同的字元以及相同字元的不同表示方式可能需要不同數量的記憶體空間來儲存。所以swift 中的字元在乙個字串中並不一定占用相同的記憶體空間數量

2、因此characters屬性必須遍歷全部的unicode標量,知道範圍才能確定字串的字元數

3、同時注意characters與nsstring的length屬性的區別。nsstring的length屬性是利用 utf-16 表示的十六位**單元數字,而不是 unicode 可擴充套件的字元群集。

1、startindex:string第乙個character的索引

2、endindex:最後乙個character的後乙個位置的索引。後一位置!後一位置!後一位置!

3、string.index.predecessor():前面乙個索引

4、string.index.successor():後面乙個索引

5、string.index.advancedby():任意位置索引

6、characters.indices:建立乙個包含全部索引的範圍

var indicesstring = "halloween!"

print(indicesstring[indicesstring.endindex

.predecessor()])

print(indicesstring[indicesstring.startindex

.successor()])

print(indicesstring[indicesstring.endindex

.advancedby(-6)])

for index in indicesstring.characters

.indices

!ao

hall

owee

n!

1、insert(_:atindex:):插入乙個字元到指定索引

2、insertcontentsof(_:at:):插入乙個字串到自定索引

3、removeatindex(_:):刪除指定索引的乙個字元

4、removerange(_:):刪除指定索引的乙個字串

對字串進行說明

var insertandremovestring = "hello"

insertandremovestring.insertcontentsof(" world"

.characters, at: insertandremovestring.endindex)

print(insertandremovestring)

let range = insertandremovestring.endindex

.advancedby(-6)...endindex

insertandremovestring.removerange(range)

print(insertandremovestring)

output:

hello world

hello

1、字串相等(==、!=)

只要兩字串或字元的可擴充套件的字形群集是標準相等的,那麼他們就相等。無所謂其字形群集是由不同的unicode標量構成。

簡言之就是只要語言意義和外觀相同就認為他們標準相同

2、字首字尾相等

hasprefix(_:)/hassuffix(_:),返回乙個布林值

let teststringarray = [

"boy zhu",

"boy huang",

"boy hu",

"girl juliet"]

var boycount = 0

for info in teststringarray

}print("there are \(boycount) boy")

output:

there are 3 boy
這部分個人認為應用的地方應該不多,有需要用到時現查~

python初學五 字串

字串由一串行的單個字元組成,下標由0開始,slicing string b a 0 4 擷取包括第0位 不包括第4位的字元。如果a 4 擷取從一開始到第三位的字元。如果a 8 擷取包括第8位到最後一位的字元。如果a 擷取整個字串。如果a 6 20 若第二位超出整個字串的長度 len string n...

Python學習筆記(五) 字串

以mark lutz著的 python學習手冊 為教程,每天花1個小時左右時間學習,爭取兩周完成。寫在前面的話 2013 7 17 19 50 學習筆記 1,在python中,單引號和雙引號的是一樣的。2,在字串前使用r可以關閉字元轉義,使用u或u則表示unicode字串。可以混合使用u和r。在un...

c 學習筆記(五) 字串

1.1.1字元 字元用單引號包含,實際上代表乙個整數,整數值就是這個字元的ascii值大小,如 a 跟97 十進位制 的含義是嚴格一致的,甚至可以互換。char ch a printf c a 1.1.2字串 標頭檔案 include 雙引號括起來的字元,實際代表乙個指向無名陣列起始字元的指標,這個...