美文网首页
4.字符串和字符

4.字符串和字符

作者: LucXion | 来源:发表于2021-07-12 11:57 被阅读0次

    多行字符串字面量: """

    • 用反斜杠\ 可以消除换行符

    • 控制关闭引号前的空格可以做到首行缩进

    字面量特殊字符

    • 转义字符 \0(空字符)、\\(反斜线)、\t(水平制表符)、\n(换行符)、\r(回车符)、\"(双引号)、\'(单引号)。

    • Unicode 标量,写成 \u{n}(u 为小写),其中 n 为任意一到八位十六进制数且可用的 Unicode 位码。

    • 扩展字符串分隔符 #

    print(#"abc\(abc)"#)
    // 输出 abc\(abc)
    

    字符串是值类型

    Character 类型代表一个可扩展的字形群

    let eAcute: Character = "\u{E9}"                         // é
    let combinedEAcute: Character = "\u{65}\u{301}"          // e 后面加上  ́
    // eAcute 是 é, combinedEAcute 是 é
    let precomposed: Character = "\u{D55C}"                  // 한
    let decomposed: Character = "\u{1112}\u{1161}\u{11AB}"   // ᄒ, ᅡ, ᆫ
    // precomposed 是 한, decomposed 是 한
    

    字符串索引:String由Character组成,Character可能由多个Unicode标量组成,所以不能用整数索引

    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
    
    var welcome = "hello"
    welcome.insert("!", at: welcome.endIndex)
    // welcome 变量现在等于 "hello!"
    
    welcome.insert(contentsOf:" there", at: welcome.index(before: welcome.endIndex))
    // welcome 变量现在等于 "hello there!"
    
    welcome.remove(at: welcome.index(before: welcome.endIndex))
    // welcome 现在等于 "hello there"
    
    let range = welcome.index(welcome.endIndex, offsetBy: -6)..<welcome.endIndex
    welcome.removeSubrange(range)
    // welcome 现在等于 "hello"
    
    字符串与子字符串的关系

    字符串的比较:

    // "Voulez-vous un café?" 使用 LATIN SMALL LETTER E WITH ACUTE
    let eAcuteQuestion = "Voulez-vous un caf\u{E9}?"
    // "Voulez-vous un café?" 使用 LATIN SMALL LETTER E and COMBINING ACUTE ACCENT
    let combinedEAcuteQuestion = "Voulez-vous un caf\u{65}\u{301}?"
    if eAcuteQuestion == combinedEAcuteQuestion {
        print("These two strings are considered equal")
    }
    
    let latinCapitalLetterA: Character = "\u{41}"
    let cyrillicCapitalLetterA: Character = "\u{0410}"
    if latinCapitalLetterA != cyrillicCapitalLetterA {
        print("These two characters are not equivalent")
    }
    
    let StringA = String.init(latinCapitalLetterA)
    let StringB = String.init(cyrillicCapitalLetterA)
    let NA = NSString.init(string: StringA)
    let NB = NSString.init(string: StringB)
    if StringA != StringB {
        print("String不相等")
    }
    if NA != NB {
        print("NSString不相等")
    }
    

    Unicode:

    是一个用于在不同书写系统中对文本进行编码、表示和处理的国际标准。它使你可以用标准格式表示来自任意语言几乎所有的字符,并能够对文本文件或网页这样的外部资源中的字符进行读写操作。Swift 的 StringCharacter 类型是完全兼容 Unicode 标准的。

    相关文章

      网友评论

          本文标题:4.字符串和字符

          本文链接:https://www.haomeiwen.com/subject/euefpltx.html