Swift字符串常用操作總結(jié)

  • 作者:Mandarava(鰻駝螺)

版本2:增加了Swift 2.0的語(yǔ)法,與Swift 1.2的語(yǔ)法相比,主要是:advance方法變成了advancedBy方法(但不是簡(jiǎn)單替換)女轿;沒有了count方法,count(str)需要變成str.characters.count等越走。

  1. 字符串的定義
var str1="hello, mandarava." //字符串變量
let str2="hello, mandarava." //字符串常量
let str3="" //空字符串
let str4=String() //空字符串
  1. 字符的定義
var char1:Character="m" //字符變量
let char2:Character="m" //字符常量
  1. 字符串的連接
let str1="hello, "
let str2="mandarava."
let str3=str1+str2 //=連接str1、str2
//str3="hello, mandarava."
//----------------------------------------
let str4="\(str1)\(str2)" //=連接str1靠欢、str2
//str4="hello, mandarava."
//----------------------------------------
let strArray=["apple", "orange", "cherry"]
let joinStr=",".join(strArray)
//joinStr="apple,orange,cherry"
  1. 字符串與字符的連接
let char1:Character="o"
var str1="hell"
let str2=str1+String(char1)
//str2="hello"
//----------------------------------------
let str3="\(str1)\(char1)"
//str3="hello"
//----------------------------------------
str1.append(char1)
//str1="hello"
  1. 字符串與其它類型值的連接
let xx=10
let yy=10.8
let str1="\(xx)+\(yy)=?"
//str1="10+10.8=?"
//----------------------------------------
let str2=String(format: "%i+%.1f=?", xx, yy)
//str2="10+10.8=?"
  1. 字符串枚舉字符
//Swift 1.2
let str="mandarava"
for ch in str{
   println(ch)
}
//-----------------------
//Swift 2.0
let str="mandarava"
for ch in str.characters{
   print(ch)
}
  1. 獲取字符串中指定索引處的字符
let str="Mandarava"
let chr=str[advance(str.startIndex,2)] //Swift 1.2 //chr:Character="n"
let chr=str[str.startIndex.advancedBy(2)] //Swift 2.0 //chr:Character="n"
  1. 計(jì)算字符串長(zhǎng)度length
let str="@鰻駝螺"
let len1=count(str) //swift 1.2 //=4 
let len2=str.characters.count //swift 2.0 //=4 
let blen=str.lengthOfBytesUsingEncoding(NSUTF8StringEncoding) //=10
  1. 字符串比較
let str1="hello,"
let str2="mandarava."
let str3="hello,mandarava."
let comp1 = str1==str2 //false
let comp2 = str1+str2 == str3 //true
let comp3 = str1 < str2 //true
let comp4 = str1 != str2 //true
  1. 是否包含子串contains
let str1="hello,mandarava."
let str2="mandarava"
let range=str1.rangeOfString(str2)
if range != nil{
   //包含
}
  1. 查找子串indexof
var str="hi,Mandarava."
let range=str.rangeOfString("Mandarava", options: NSStringCompareOptions.allZeros) //Swift 1.2
let range=str.rangeOfString("Mandarava", options: NSStringCompareOptions()) //Swift 2.0
let startIndex=range?.startIndex //=3
  1. 首字母大寫capitalized
var str1="mandarava is a flower."
str1.capitalizedString
//str1="Mandarava Is A Flower.
  1. 轉(zhuǎn)換為大寫字母uppercase
var str1="hello, mandarava."
str1=str1.uppercaseString
//str1="HELLO, MANDARAVA."
  1. 轉(zhuǎn)換為小寫字母lowercase
var str1="HELLO, MANDARAVA."
str1=str1.lowercaseString
//str1="hello, mandarava."
  1. 截取字符串substring
let str1="hello,mandarava."
let str2=str1.substringFromIndex(advance(str1.startIndex, 6)) //Swift 1.2
let str2=str1.substringFromIndex(str1.startIndex.advancedBy(6)) //Swift 2.0
//str2="mandarava."
//----------------------------------------
let str3=str1.substringToIndex(advance(str1.startIndex, 5)) //Swift 1.2
let str3=str1.substringToIndex(str1.startIndex.advancedBy(5)) //Swift 2.0
//str3="hello"
//----------------------------------------
let range=Range<String.Index>(start: advance(str1.startIndex, 6), end: advance(str1.endIndex, -1)) //Swift 1.2
let range=Range<String.Index>(start: str1.startIndex.advancedBy(6), end: str1.endIndex.advancedBy(-1)) //Swift 2.0
let str4=str1.substringWithRange(range)
//str4="mandarava"
  1. 字符串修剪trim
let str1=" mandarava.\n "
let str2=str1.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
//str2="mandarava."
//----------------------------------------
let str3=str1.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
//str3="mandarava.\n"
//----------------------------------------
let charset=NSCharacterSet(charactersInString:" \n")
let str4=str1.stringByTrimmingCharactersInSet(charset)
//str4="mandarava."
  1. 字符串的分解子串split
var str1="boy, girl, man, woman"
let str1Array=str1.componentsSeparatedByString(",")
//str1Array=["boy", " girl", " man", " woman"]
var str2="boy,girl,man 10 20 30"
let charset=NSCharacterSet(charactersInString:", ")
let str2Array=str2.componentsSeparatedByCharactersInSet(charset)
//str2Array=["boy", "girl", "man", "10", "20", "30"]
  1. 字符串替換replace
var str1="My name is Mandarava."
let subRange=Range(start: str1.startIndex, end: advance(str1.startIndex, 2)) //Swift 1.2
let subRange=Range(start: str1.startIndex, end: str1.startIndex.advancedBy(2)) //Swift 2.0
str1.replaceRange(subRange, with: "Your")
//str1="Your name is Mandarava."
var str2="hello, Mandarava."
str2=str2.stringByReplacingOccurrencesOfString("Mandarava", withString: "鰻駝螺")
//str2="hello, 鰻駝螺."
str2=str2.stringByReplacingOccurrencesOfString("鰻駝螺", withString: "Mandarava", options: NSStringCompareOptions.CaseInsensitiveSearch, range: nil)
//str2="hello, Mandarava."
  1. string轉(zhuǎn)換為Int/Long/Float/Double/Bool等
var str1="100"
var i=str1.toInt()! //Swift 1.2 //=100 
var i=(str1 as NSString).integerValue //Swift 2.0 //=100
var i=(str1 as NSString).intValue //=100
var l=(str1 as NSString).longLongValue //=100
var str2="10.8"
var f=(str2 as NSString).floatValue //=10.8
var d=(str2 as NSString).doubleValue //=10.8
var str3="true"
var b=(str3 as NSString).boolValue //=true
  1. 其它想到再補(bǔ)充廊敌!如有錯(cuò)誤歡迎指正!
    by Mandarava(鰻駝螺)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末掺涛,一起剝皮案震驚了整個(gè)濱河市庭敦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌薪缆,老刑警劉巖秧廉,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異拣帽,居然都是意外死亡疼电,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門减拭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蔽豺,“玉大人,你說(shuō)我怎么就攤上這事拧粪⌒薅福” “怎么了?”我有些...
    開封第一講書人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵可霎,是天一觀的道長(zhǎng)魄鸦。 經(jīng)常有香客問(wèn)我,道長(zhǎng)癣朗,這世上最難降的妖魔是什么拾因? 我笑而不...
    開封第一講書人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上绢记,老公的妹妹穿的比我還像新娘扁达。我一直安慰自己,他們只是感情好蠢熄,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開白布跪解。 她就那樣靜靜地躺著,像睡著了一般签孔。 火紅的嫁衣襯著肌膚如雪惠遏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,246評(píng)論 1 308
  • 那天骏啰,我揣著相機(jī)與錄音,去河邊找鬼抽高。 笑死判耕,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的翘骂。 我是一名探鬼主播壁熄,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼碳竟!你這毒婦竟也來(lái)了草丧?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤莹桅,失蹤者是張志新(化名)和其女友劉穎昌执,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诈泼,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡懂拾,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了铐达。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片岖赋。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖瓮孙,靈堂內(nèi)的尸體忽然破棺而出唐断,到底是詐尸還是另有隱情,我是刑警寧澤杭抠,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布脸甘,位于F島的核電站,受9級(jí)特大地震影響祈争,放射性物質(zhì)發(fā)生泄漏斤程。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望忿墅。 院中可真熱鬧扁藕,春花似錦、人聲如沸疚脐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)棍弄。三九已至望薄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間呼畸,已是汗流浹背痕支。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蛮原,地道東北人卧须。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像儒陨,于是被迫代替她去往敵國(guó)和親花嘶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容