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...