String扩展Extension:字符串截取、删除、替换、插入等操作

1. 字符串的截取

(1) 以prefixsuffix来截取字符串,必须包括起始或者结束部分的字符

// 文字列の初期化
let str = "Hello"

// 文字列の最初の3つの文字列をインターセプトする
let sub1 = str.prefix(3)

// 文字列の最後の3つの文字列をインターセプトする
let sub2 = str.suffix(3)

(2) 以index来截取字符串,则可以截取任意部分的字符

// 文字列の初期化
let str = "Hello"

// 文字列の最後の3つの文字列をインターセプトする
let index = str.index(str.endIndex, offsetBy: -3)
let sub3 = str[index..<str.endIndex]

// 文字列を1文字目から4文字目まで切り捨てます(1文字目と4文字目を除く)
let indexOfStart = str.index(str.startIndex, offsetBy: 1)
let indexOfEnd = str.index(str.startIndex, offsetBy: 3)
let sub4 = str[indexOfStart..<indexOfEnd]

(3)直接获取任意位置的单个字符

// 文字列の初期化
let str = "Hello"

// 文字列の3文字目を取得する
let sub5 = str[2]

2. 字符串的删除

(1) 删除一段内容

// 文字列の初期化
var str = "Hello Swift"

// 文字列を1文字目から4文字目までを削除する(1文字目と4文字目を除く)
let indexOfStart = str.index(str.startIndex, offsetBy: 1)
let indexOfEnd = str.index(str.startIndex, offsetBy: 3)
str.removeSubrange(indexOfStart..<indexOfEnd)

(2) 删除单个字符

// 文字列の初期化
var str = "Just Test"

// 文字列を2文字目を削除する
let indexOfStart = str.index(str.startIndex, offsetBy: 1)
str.remove(at: indexOfStart)

3. 字符串的替换

(1) 替换一段内容,两个参数:替换的范围和用来替换的内容

// 文字列の初期化
var str = "Just Test"

// 文字列を1文字目から4文字目までを交換する(1文字目と4文字目を除く)
let indexOfStart = str.index(str.startIndex, offsetBy: 1)
let indexOfEnd = str.index(str.startIndex, offsetBy: 3)
str.replaceSubrange(indexOfStart..<indexOfEnd, with: "new")

(2) 替换一段内容,有返回值,两个参数:要替换的内容和用来替换的内容

// 文字列の初期化
var str = "JustTest"

// 文字列を交換する
let reStr = str.replacingOccurrences(of: "Test", with: "H")

4. 字符串的插入

(1) 插入一段内容,两个参数:用来插入的内容和插入的起点

// 文字列の初期化
var str = "JustTest"

// 挿入の開始位置
let indexOfStart = str.index(str.startIndex, offsetBy: 1)
str.insert(contentsOf: "SWIFT", at: indexOfStart)

(2) 插入一个字素,注意:只能是一个字素

// 文字列の初期化
var str = "JustTest"

// 挿入の開始位置
let indexOfStart = str.index(str.startIndex, offsetBy: 1)
str.insert("s", at: indexOfStart)

参考链接:https://blog.csdn.net/SSY_1992/article/details/86542445

Example:

import Foundation

extension String {

    // 文字列の交換
    // 特殊文字("-", " ", ",")の除く
    // removeStr: 削除する文字
    func specialCharactersRemove(removeStr: String) -> String {
        
        return self.replacingOccurrences(of: removeStr, with: "", options: .literal, range: nil)
    
    }

    // 特殊文字の添加
    // insertPosition: 挿入する文字の位置
    // insertStr: 挿入する文字
    // strCount: 元の文字列の長さ
    func halfSpaceHyphenToAdd(insertPosition: [Int], insertStr: String, strCount: Int) -> String {
        
        var str = self
        guard str.count == strCount else {
            return ""
        }
        
		for i in 0..<insertPosition.count {
			let index = str.index(str.startIndex, offsetBy: insertPosition[i])
		    str.insert(contentsOf: insertStr, at: index)
		}
		
        return str
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值