美文网首页
3.字符串

3.字符串

作者: liushong | 来源:发表于2016-04-12 23:46 被阅读0次

    var emptyString = ""              // 空字符串字面量

    var anotherEmptyString = String()  // 初始化方法

    // 两个字符串均为空并等价。

    if emptyString.isEmpty {

    print("Nothing to see here")

    }

    // 打印输出:"Nothing to see here"

    Swift 的String类型是值类型。 如果您创建了一个新的字符串,那么当其进行常量、变量赋值操作,或在函数/方法中传递时,会进行值拷贝。 任何情况下,都会对已有字符串值创建新副本,并对该新副本进行传递或赋值操作。

    您可通过for-in循环来遍历字符串中的characters属性来获取每一个字符的值:

    for character in "Dog!🐶".characters {

    print(character)

    }

    // D

    // o

    // g

    // !

    // 🐶

    另外,通过标明一个Character类型并用字符字面量进行赋值,可以建立一个独立的字符常量或变量:

    let exclamationMark: Character = "!"

    let catCharacters: [Character] = ["C", "a", "t", "!", "🐱"]

    let catString = String(catCharacters)

    print(catString)

    // 打印输出:"Cat!🐱"

    var str = "123"

    var char:Character = "4" //写才是字符 默认字符串

    str.append(char)

    注意:

    您不能将一个字符串或者字符添加到一个已经存在的字符变量上,因为字符变量只能包含一个字符。

    let unusualMenagerie = "Koala 🐨, Snail 🐌, Penguin 🐧, Dromedary 🐪"

    print("unusualMenagerie has \(unusualMenagerie.characters.count) characters")

    // 打印输出 "unusualMenagerie has 40 characters"

    var word = "cafe"

    print("the number of characters in \(word) is \(word.characters.count)")

    // 打印输出 "the number of characters in cafe is 4"

    word += "\u{301}"    // COMBINING ACUTE ACCENT, U+0301

    print("the number of characters in \(word) is \(word.characters.count)")

    // 打印输出 "the number of characters in café is 4"

    let greeting = "Guten Tag!"

    greeting[greeting.startIndex]

    // G

    greeting[greeting.endIndex.predecessor()]

    // !

    greeting[greeting.startIndex.successor()]

    // u

    let index = greeting.startIndex.advancedBy(7)

    greeting[index]

    // a

    试图获取越界索引对应的Character,将引发一个运行时错误。

    greeting[greeting.endIndex] // error

    greeting.endIndex.successor() // error

    let greeting = "Guten Tag!"

    for index in greeting.characters.indices {

    print("\(greeting[index])", terminator: "-")

    }

    调用insert(_:atIndex:)方法可以在一个字符串的指定索引插入一个字符。

    var welcome = "hello"

    welcome.insert("!", atIndex: welcome.endIndex)

    // welcome now 现在等于 "hello!"

    调用insertContentsOf(_:at:)方法可以在一个字符串的指定索引插入一个字符串。

    welcome.insertContentsOf(" there".characters, at: welcome.endIndex.predecessor())

    // welcome 现在等于 "hello there!"

    调用removeAtIndex(_:)方法可以在一个字符串的指定索引删除一个字符。

    welcome.removeAtIndex(welcome.endIndex.predecessor())

    // welcome 现在等于 "hello there"

    调用removeRange(_:)方法可以在一个字符串的指定索引删除一个字符

    let range = welcome.endIndex.advancedBy(-6)..<welcome.endIndex

    welcome.removeRange(range)

    // welcome 现在等于 "hello"

    字符串/字符可以用等于操作符(==)和不等于操作符(!=)

    通过调用字符串的hasPrefix(_:)/hasSuffix(_:)方法来检查字符串是否拥有特定前缀/后缀,两个方法均接收一个String类型的参数,并返回一个布尔值。

    相关文章

      网友评论

          本文标题:3.字符串

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