Swift字符串操作-持续更新-2022

 Swift字符串追加

var str = "OC"
str.append(" Swfit")
print(str)
// 输出结果: OC Swift

输出结果:

 

Swift获取字符串长度

let str = String(format: "数字%.2f", 333.333)
// 获取长度
print(str.count)
// 输出结果: 8

输出结果:

 

Swfit计算字符串中子字符串出现的次数 

Swfit计算字符串中字符的出现次数

Swfit统计字符串中指定字符的个数

Swfit计算指定字符在字符串中出现的次数

 1 override func viewDidLoad() {
 2         super.viewDidLoad()
 3         
 4         let text = "swfitJJUKKswiftnnytuswfitssssswfittttaaee"
 5         let num = subStringCount(str: text, substr: "swfit")
 6         print("swfit在字符串中出现了\(num)次")
 7     }
 8     
 9     
10     /// 计算字符串中子字符串出现的次数
11     /// - Parameters:
12     ///   - str: 字符串
13     ///   - substr: 子字符串
14     /// - Returns: 数量
15     func subStringCount(str: String, substr: String) -> Int {
16         { $0.isEmpty ? 0 : $0.count - 1 } ( str.components(separatedBy: substr))
17     }
18 
19     //参考 https://stackoom.com/en/question/29Cdr

输出结果:

 

Swift字符串的子串

1 // MARK:字符串的子串
2     // 建议:一般使用NSString中转
3     func test()  {
4         let str = "好好学习,天天向上"
5         let ocStr = str as NSString
6         let s1 = ocStr.substring(with: NSMakeRange(2, 5))
7         print(s1)
8     }

输出结果:

 

Swfit字符串遍历和长度的三种方法

 1 override func viewDidLoad() {
 2         super.viewDidLoad()
 3         
 4         test1()
 5         test2()
 6     }
 7 
 8 
 9     
10     // MARK: 字符串遍历
11     func test1()  {
12         let str  = "需要遍历的字符串"
13         for byteStr in str {
14             print(byteStr)
15         }
16     }
17     // 输出结果: 需
18     // 输出结果: 要
19     // 输出结果: 遍
20     // 输出结果: 历
21     // 输出结果: 的
22     // 输出结果: 字
23     // 输出结果: 符
24     // 输出结果: 串
25 
26     // MARK: 字符串的长度
27     func test2()  {
28         
29         let str = "Hello World 你好"
30         //1.返回指定编码的对应的字节数量
31         //UTF8的编码(0--4) 每个汉字是3个字节
32         print(str.lengthOfBytes(using: .utf8))
33         
34         //2.字符串长度 -返回字符的个数
35         print(str.count);
36         
37         //3.使用NSString中转
38         let ocStr = str as NSString
39         print(ocStr.length)
40     }
41     // 输出结果: 18
42     // 输出结果: 14
43     // 输出结果: 14

输出结果:

 

Swift 字符串是否包含某字符

/// 字符串是否包含指定字符
    func test() {
        let label = UILabel()
        label.text = "ADSSSwfitKohuo"
        
        if label.text!.contains("Swfit") {
            print("包含")
        } else {
            print("不包含")
        }
        
        // 输出结果: 包含
    }

  

Swfit拼接字符串

 1 // MARK: - 字符串拼接
 2     func test()  {
 3         
 4         let name = "张三"
 5         let age = 30
 6         let title:String? = "大BOSS"
 7         
 8         //格式:\(变量或常量)
 9         //let str = "\(name)\(age)\(title)"
10         let str = "\(name)\(age)\(title ?? "")"
11         
12         print(str)
13         
14     }

输出结果:

 

Swfit格式化字符串

//MARK:格式化字符串
func test()  {
    let h = 6
    let m = 36
    let s = 55
    
    let dateStr = "\(h):\(m):\(s)"
    //使用格式字符串格式化
    let dateStr1 = String(format:"%02d:%02d:%02d",h,m,s)
    
    print(dateStr)
    print(dateStr1)
}

输出结果:

 

String类型的字符串截取|删除

String类型的字符串截取方法,使用的是字符串切片的原理,直接对原字符串做修改,所以必须用var定义变量名。

 

//String类型的字符串
 var str = "123456"
 //从后删除最后一个字符
 str.removeLast()
 //从后删除指定个数的字符
 str.removeLast(2)
 //从前删除第一个字符
 str.remove(at: str.startIndex)
 //删除脚标为3的字符
 str.remove(at: str.index(str.startIndex, offsetBy: 3))
 //删除自定义区间的字符串
 str.removeSubrange(Range.init(NSMakeRange(2, 3), in: str)!)
 //删除所有字符,变成空字符串
 str.removeAll()

// 头部截取
let str = "ABCDEFG"
let str1 = str.prefix(2);
print(str1)
// 结果: AB
   
// 尾部截取
let str2 = str.suffix(3);
print(str2)
// 结果: EFG

 

 

NSString类型的字符串截取

NSString类型的字符串截取方法,同于OC语言的字符串截取方法,不能修改字符串本身,截取后返回String类型,所以需要定义变量进行接收。

1 //NSString类型的字符串
2 let str: NSString = "123456"
3 //从开头截取到指定脚标
4 str.substring(to: 4)
5 //从指定脚标截取到结尾
6 str.substring(from: 3)
7 //自定义截取区间
8 str.substring(with: NSMakeRange(2, 3))

 

posted @ 2022-05-04 15:39  阿凡同学  阅读(279)  评论(0编辑  收藏  举报