Strings and Characters

  • 使用“ """ ”創(chuàng)建多行字符串

  • 使用超過下方引號前空格數的空格縮進

  • 使用string.isEmpty判斷字符串是否為空

  • 使用let和var區(qū)別是否可變
    這里只是單純的是否可變盒粮,區(qū)別與oc中NSString與NSMutableString是否可變的復雜機制。

  • 可以使用string()創(chuàng)建

  • swift中string是值類型奠滑,不同于Oc中string作為特殊的對象類型丹皱,會自動進行值拷貝(所謂的值拷貝就是將a的值賦予b之后改變b的值不會影響到a,這是值類型的特征宋税,不同于對象類型儲存于同一內存改變其中一個會影響另一個摊崭,詳情寫在oc的基本知識里)

  • 可以使用forin遍歷string中的characters

  • 可以使用字符數組作為參數構件字符

    let catCharacters:[Character] = ["C","a","t","!","??"]
    let cat = String(catCharacters)
    
  • 多行字符串相加時后者第一行會加在前者最后一行后(前者需手動留空白行)。

  • 使用\()在字符串中加入變量

  • 由于不同類型的字符編碼位數不同造成大小不同杰赛,所以 string 中的 index 不能用 int 類型呢簸。只能用如下方式:

    let greeting = "Guten Tag!"
    greeting[greeting.startIndex]
    // G
    greeting[greeting.index(before: greeting.endIndex)]
    // !
    greeting[greeting.index(after: greeting.startIndex)]
    // u
    let index = greeting.index(greeting.startIndex, offsetBy: 7)
    greeting[index]
    // a
    
  • endIndex 為最后一個字符串結尾的位置,所以訪問字符串最后一個字符用 brefore:endIndex乏屯,否則如下:

    greeting[greeting.endIndex] // Error
    greeting.index(after: greeting.endIndex) // Error
    
  • 使用 indices 屬性遍歷字符串中所有字符

    for index in greeting.indices {
        print("\(greeting[index]) ", terminator: "")
    }
    // Prints "G u t e n   T a g ! "
    
  • index(before:), index(after:), 以及index(_:offsetBy:)可以用于所有遵循 Collection 協議的類型根时,包括 String,Array辰晕,Dictionary蛤迎,Set。

  • 使用string.insert和string.remove插入和刪除character

    var welcome = "hello"
    welcome.insert("!", at: welcome.endIndex)
    welcome.insert(contentsOf: " there", at: welcome.index(before:welcome.endIndex))
    welcome.remove(at: welcome.index(before: welcome.endIndex))
    let range = welcome.index(welcome.endIndex, offsetBy: -6)..<welcome.endIndex
    welcome.removeSubrange(range)
    
  • insert和remove可以用于任何遵守RangeReplaceableCollection協議的對象含友,包括String替裆,Array校辩,Dictionary,and Set辆童。

  • SubString 為截取 String 形成的子字符串宜咒,類似于 String,有著幾乎通用的方法(都遵循 StringProtocol協議)把鉴。不過 SubString 只能作為臨時變量故黑,不能存儲,需要轉為 String 纸镊。

    let greeting = "Hello, world!"
    //特別的index類型
    let index = greeting.firstIndex(of: ",") ?? greeting.endIndex
    //以string作為character數組倍阐,并在[]中傳入index列表截取字符串
    let beginning = greeting[..<index]
    // beginning is "Hello"
    
    // Convert the result to a String for long-term storage.
    let newString = String(beginning)
    

    原理:
    SubString 實際上是重用相對應 String 中的部分內存,所以如果 SubString 長期占用其內存逗威,相應的源 String也需要長期存在不能被釋放。故此 SubString 不能長期存儲(substrings aren’t suitable for long-term storage)

  • 使用 ==!= 判斷兩個字符串是否一致岔冀。使用 hasPrefix 判斷是否以某一字符串開頭凯旭,使用hasSuffix判斷是否以某一字符串結尾。

  • utf8和utf16可以用一位表示某些字符使套,但是例如??罐呼,可能需要多個。而Unicode Scalar使用12bit侦高,可以用一位表示各種字符嫉柴。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市奉呛,隨后出現的幾起案子计螺,更是在濱河造成了極大的恐慌,老刑警劉巖瞧壮,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件登馒,死亡現場離奇詭異,居然都是意外死亡咆槽,警方通過查閱死者的電腦和手機陈轿,發(fā)現死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來秦忿,“玉大人麦射,你說我怎么就攤上這事〉埔ィ” “怎么了潜秋?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長酬屉。 經常有香客問我半等,道長揍愁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任杀饵,我火速辦了婚禮莽囤,結果婚禮上,老公的妹妹穿的比我還像新娘切距。我一直安慰自己朽缎,他們只是感情好,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布谜悟。 她就那樣靜靜地躺著话肖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪葡幸。 梳的紋絲不亂的頭發(fā)上最筒,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天,我揣著相機與錄音蔚叨,去河邊找鬼床蜘。 笑死,一個胖子當著我的面吹牛蔑水,可吹牛的內容都是我干的邢锯。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼搀别,長吁一口氣:“原來是場噩夢啊……” “哼丹擎!你這毒婦竟也來了?” 一聲冷哼從身側響起歇父,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蒂培,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后庶骄,有當地人在樹林里發(fā)現了一具尸體毁渗,經...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年单刁,在試婚紗的時候發(fā)現自己被綠了灸异。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡羔飞,死狀恐怖肺樟,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情逻淌,我是刑警寧澤么伯,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站卡儒,受9級特大地震影響田柔,放射性物質發(fā)生泄漏俐巴。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一硬爆、第九天 我趴在偏房一處隱蔽的房頂上張望欣舵。 院中可真熱鬧,春花似錦缀磕、人聲如沸缘圈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽糟把。三九已至,卻和暖如春牲剃,著一層夾襖步出監(jiān)牢的瞬間遣疯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工颠黎, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留另锋,地道東北人。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓狭归,卻偏偏與公主長得像,于是被迫代替她去往敵國和親文判。 傳聞我的和親對象是個殘疾皇子过椎,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內容