Swift新手教程3 字串String

2021-09-07 05:08:29 字數 3297 閱讀 5009

string

在swfit中,string相容unicode的方式。用法和c語言類似。

注意在cocoa和cocoa touch中,swift的string,和foundation中的nsstring是相容的,全部nsstring額api都能夠呼叫string型別

字串常量

1、含轉義字元:比如\n,\t等

2、單位元組unicode標量,\xmm

3、雙位元組unicode標量,\ummmm

4、四位元組unicode標量,\ummmmmmmm

這裡的m為十六進製制數

let myname = "hwc"//hwc

let myname = "\"hwc\""//"hwc"

初始化

var emptystring = "" //空字串

var sameemptystring = string()//空字串

var notemptystring = "first"

值傳遞

在swfit中。對字串進行賦值操作或者作為引數傳遞給函式的時候是值傳遞。也就是說傳遞的是副本,而不是本身的引用。

這點和cocoa的nsstring不同

字串經常使用操作

1 isempty屬性

推斷是否為空

let str = ""

if str.isempty

2 startindex endindex

countelements

返回最後乙個字元的index,返回值型別string.index

let str = "hello world"

println(str.endindex)//11

println(countelements(str))

3 toint()

返回int?即,假設能轉換成功,則返回值是int,否則為nil

var str = "123"

var result = str.toint()

if result != nil

4 子字串 

substringfromindex(index:string.index)

substringtoindex(index:string.index)

substringwithrange(arange:range())

這裡要使用到乙個advance函式: advance(start:t,n:distance)

就是相對於t的偏移distance距離。由於臨時還找不到int轉string.index合適的api

stackoverflow上找了些資料,似乎swift的api還有非常多不完好的地方

在最後。我會講到怎樣擴充套件乙個類,然後給出子字串的樣例

var str = "hello world"

str.substringfromindex(advance(str.startindex,6))//hello

str.substringtoindex(advance(str.startindex,5)) //world

str.substringwithrange(range(start:advance(str.startindex,2),end:advance(str.startindex,8)))//llo wo

5 字串拼接

非常簡答,用加號+ 或者字串插值

var str1 = "hello"

var str2 = "world"

var str = str1 + str2

var str2 = "\(str1) hwc and the \(str2)" //hello hwc and the world

6 大寫和小寫轉換

str.uppercasestring //hello world 

str.lowercasestring //hello world

7  字首字尾 相等

bool hasprefix(prefix:string)

bool hassuffix(suffix:string)

var str = "hello hwc"

str.hasprefix("hello") //true

str.hassuffix("123") //false

var str1 = "jack"
if  str == str1

8 處理子字串

void insert(newelememt:character,atindex:string.index) //插入字元

void removeatindex(i:string.index) //刪除字元

void removerange(subrange:range)//刪除乙個區間

void replacerange(subrange:range,with:c)

9 格式化合併字串

var str = "hello world"

10 utf8 utf16屬性

str.utf8 //返回str的utf8表示的集合

str.utf16 //返回str的utf17表示的集合

擴充套件string

通過擴充套件swifr的類,能夠提供新的方法而不改變原有的類。下面為幾個擴充套件函式,分別擴充套件了

通過下標獲得子字串

以及substring的三個過載

extension string

}func substring(from: int) -> string {

let end = countelements(self)

return self[from..string {

let end = from + length

return self[from..string

{return self[from..

輸出hello

hello

world

swift基礎3 字串

1 遍歷 2 長度 3 拼接 4 插值 5 大小寫 6 trim 7 split 等等 var a 你好 var b string a.isempty b xxyyyyy b.isempty 遍歷 for c in b 計算長度 countelements b 拼接 a b 插值 var strss...

Swift文件Chapter 3 字串和字元

swift的字串型別由string型別表示,也有多種訪問方式,例如以character集合方式訪問。字串的字面量是一對雙引號包裹著的具有固定順序的字符集。一對三個引號包裹著的字串是多行字串字面量。字串開始位置為三引號後一行 意味著第乙個換行符不會計入 結束位置是三引號前一行 意味著三引號前的換行符不...

Swift 五 字串和字元

1 swift入門學習筆記 第一版 對swift的基礎知識點進行梳理總結。知識點一直在變,只是作為參考,以蘋果官方文件為準 2 在學習完基本的知識點以後會結合官方文件及相關資料,在此版本的基礎上進行新增更改。字串 let datequestion the month is let datenum 1...