swift 之 字符串的用法

当我写下此篇博客之时,我已研究它多时,因为我从没有遇到过截取字符串还需要三步之多的语言。也许是我太菜了,今夜写下此文,与菜鸡共勉。

首先,让我们先来了解一下swift自身的方法:

1、截取前面5个字符

let substr = string.prefix(5)

2、截取后面5个字符

let substr = string.suffix(5)

3、获取下标 N 到 M 的字符(0 <= N < M <= string.count)

// let string = "12345678" 

let indexN = string.index(str.startIndex, offsetBy: n)
let indexM = string.index(str.startIndex, offsetBy: m)
let substr = string[indexN..

下面介绍String截取的简单使用方式,需要使用extension来实现

先看看效果

let str = "1234567890"

let str1 = str[6]    // 获取某一个下标的字符串
print(str1)  // 7

let str2 = str[2..<6]   // 获取下标 n到m的字符串 0 <= n < m <= str.count
print(str2)    // 3456

let str3 = str[2,6]     // 获取下标n 长度len 的字符串 
print(str3)    // 345678

let str4 = str.substring(to: 5)   //从 0 到 n个 ,也就是前面n个字符
print(str4)    // 12345

let str5 = str.substring(from: 5) // 从 n 到 尾
print(str5)    // 67890

这样用是不是非常方便呢,下面看看实现extension

// MARK: - 字符串截取
extension String {
    /// String使用下标截取字符串
    /// string[index] 例如:"abcdefg"[3] // c
    subscript (i:Int)->String{
        let startIndex = self.index(self.startIndex, offsetBy: i)
        let endIndex = self.index(startIndex, offsetBy: 1)
        return String(self[startIndex..) -> String {
        get {
            let startIndex = self.index(self.startIndex, offsetBy: r.lowerBound)
            let endIndex = self.index(self.startIndex, offsetBy: r.upperBound)
            return String(self[startIndex.. String {
        get {
            let startIndex = self.index(self.startIndex, offsetBy: index)
            let endIndex = self.index(startIndex, offsetBy: length)
            return String(self[startIndex.. String{
        return self[0.. String{
        return self[from..

你可能感兴趣的:(IOS,ios,swift,字符串)