The Swift Programming Language--Strings and Characters

Strings and Characters

The entire NSString API is available to call on any String value you create when type cast to NSString.

  • Empty String
    let a: String = "" //String literal
    var b: String = String() //initializer
    b += "Hello"

    if a.isEmpty {
        //TODO
    }
    
  • Strings are Value Types
    Copy/Not Reference

  • Working with Characters
    let s: String = "Hello World"
    for i in s.characters {
    print(i)
    }

    let c: Character = "!"
    let cArr: [Character] = ["a", "b", "c"]
    var s: String = String(cArr)
    
  • Concatenating Strings and Characters
    let a: String = "a"
    let b = "b"
    var c = a + b
    let d: Character = "!"
    var e: String = c.append(d)

  • String Interpolation

     let pi: Double = 3.14
     var r: Double = 1.0
     var s: String = "Circle square is \(pi*r*r)."
    
  • Character Count
    let a: String = "Hello"
    print("String a has (s.characters.count) characters.")

  • String Indexes
    let a: String = "Hello World"
    a[a.startIndex] //H
    a[a.endIndex] // error
    a[a.endIndex.predecessor()] //d
    a[a.startIndex.successor()] //e

    let newIndex = advance(a.startIndex, 6)
    a[a.newIndex] // W
    
    for index in indices(a) {
        print(\(a[index]))
    }
    
  • String Insert & Remove
    var hello: String = "Hello"
    hello.insert("!", atIndex: hello.endIndex) //Hello!
    hello.splice(" World".characters, atIndex: hello.endIndex.predecessor()) //Hello World!
    hello.removeAtIndex(hello.endIndex.predecessor()) //Hello World

    var range = advance(hello.endIndex, -6)..<hello.endIndex
    hello.removeRange(range) //Hello
    
  • Comparing Strings
    Unicode comparison

    let a: String = "ABC"
    let b: String = "DEF"
    
    let flag: Bool = a.hasPrefix(A) //true
    let flag2: Bool = b.hasSuffix(E) //false
    
  • UTF

    let a = "Hello World"
    for bit in a.utf8 {
           var b: String.UTF8View = bit
           print(b)
    } 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容