Swift中常见的String用法,Array高阶使用,Set集合操作

Set,Array,高阶,Swift · 浏览次数 : 15

小编点评

```python # 字符串变量 string = "Hello, world!" # 字符串连接 name = "John" fullName = firstName + " " + lastName # 子字符串查询 sentence = "Swift is a powerful and intuitive programming language." result = sentence.contains("Swift") # 字符串替换 sentence = "Swift is a powerful and intuitive programming language." replaced_sentence = sentence.replacingOccurrences("powerful", with="amazing") # 字符串删除 str = "hello_2_3_8884" result = str.remove(at=str.firstIndex(of="1"), len("1")) # 字符串插入 str = "Hello, world!" first_char = str[str.startIndex] last_char = str[str.index(before: str.endIndex)] # 字符串转数组 names = "John, Jane, Jim" arr = names.components(separatedBy=",\") # 字符串转其他 num = int(str) uppercased_str = str.uppercased() # 字符串高阶操作 arr2 = arr.map { $0 * 2 } print(arr2) # 字符串组合 arr3 = arr.filter { $0 % 2 == 0 } print(arr3) # 字符串筛选 print(set1.intersection(set2)) # 字符串集合运算 setA = Set(["a", "b", "c"]) setB = Set(["a", "b", "c"]) print(set1.union(set2)) print(set1.intersection(set2)) # 归纳总结 print(f"字符串:{string}") print(f"子字符串:{sentence}") print(f"字符串替换:{replaced_sentence}") print(f"字符串删除:{str}") print(f"字符串插入:{str}") print(f"字符串转数组:{arr}") print(f"字符串转其他:{uppercased_str}") print(f"字符集组合:{set1}.union(set2)}") ```

正文

String字符串常见用法
生成字符串
创建字符串
let greeting = "Hello, world!"
let name = String("John")

连接字符串:使用加号(+)或者字符串插值(使用())来将多个字符串连接起来。
var firstName = "John"
let lastName = "Doe"
let fullName = firstName + " " + lastName // "John Doe"
let fullName1 = firstName.append(lastName) // "My name is John Doe."
let message = "My name is \(fullName)." // "My name is John Doe."
子字符串查询,替换,插入,删除
查找子字符串
let sentence = "Swift is a powerful and intuitive programming language."
if sentence.contains("Swift") {
    // do something
}
let range = sentence.range(of: "powerful") // Optional(Range(10..<18))
var str3 = "123456"
print(str.hasPrefix("123"))
print(str.hasSuffix("456"))

替换字符串
var sentence = "Swift is a powerful and intuitive programming language."
sentence = sentence.replacingOccurrences(of: "powerful", with: "amazing")

字符串删除
// 666hello_2_3_8884
str4.remove(at: str4.firstIndex(of: "1")!)
// hello_2_3_8884
str4.removeAll { $0 == "6" }
var range = str4.index(str4.endIndex, offsetBy: -4)..<str4.index(before: str4.endIndex)
// hello_2_3_4
str4.removeSubrange(range)

字符串插入
var str = "Hello, world!"
let firstChar = str[str.startIndex] // "H"
let lastChar = str[str.index(before: str.endIndex)] // "!"
str.insert("!", at: str.endIndex) // "Hello, world!!"
字符串转数组
字符串分割
let names = "John, Jane, Jim"
let arr = names.components(separatedBy: ", ") // ["John", "Jane", "Jim"]
字符串转其他
let str = "123"
let num = Int(str) // Optional(123)
let uppercased = str.uppercased() // "123"

 

Array数组高阶操作
map:对给定数组每个元素,执行闭包中的映射,将映射结果放置在数组中返回。
flatMap:对给定数组的每个元素,执行闭包中的映射,对映射结果进行合并操作,然后将合并操作后的结果放置在数组中返回。
compactMap:对给定数组的每个元素,执行闭包中的映射,将非空的映射结果放置在数组中返回。
compactMap:对给定数组的每个元素,执行闭包中的映射,将非空的映射结果-键值对放置在字典中返回。
filter:对给定数组的每个元素,执行闭包中的操作,将符合条件的元素放在数组中返回。
reduce:对给定数组的每个元素,执行闭包中的操作对元素进行合并,并将合并结果返回。
var arr = [1, 2, 3, 4]
// [2, 4, 6, 8]
var arr2 = arr.map { $0 * 2 }
print(arr2)
// [2, 4]
var arr3 = arr.filter { $0 % 2 == 0 }
print(arr3)
// 10
var arr4 = arr.reduce(0) { $0 + $1 }
print(arr4)
// 10
var arr5 = arr.reduce(0, +)
print(arr5)

 

Set集合操作
集合创建
let setA = Set(["a","b","c"])
let setB: Set = ["a","b","c"]
增删改查
setA.contains("a")
setA.insert("c")
setA.remove("a")
集合运算
let set1 = Set([1,2,3])
let set2 = Set([1,2])

//运算判断
if set1 == set2 {
    
}
// 子集,超集判断
set2.isSubset(of: set1)
set1.isSuperset(of: set2)

// 并集,交集
set1.union(set2)
set1.intersection(set2)

 

 

 

与Swift中常见的String用法,Array高阶使用,Set集合操作相似的内容:

Swift中常见的String用法,Array高阶使用,Set集合操作

String字符串常见用法 生成字符串 创建字符串 let greeting = "Hello, world!" let name = String("John") 连接字符串:使用加号(+)或者字符串插值(使用())来将多个字符串连接起来。 var firstName = "John" let l

Swift中指针UnsafePointer的常见用法

指针类型 //基本指针 UnsafePointer const T * UnsafeMutablePointer T * //集合指针 UnsafeBufferPointer const T * //指向一个连续已知类型区域,可以看成一个集合,并支持集合操作 UnsafeMutableBuff

最近常用的几个【行操作】的Pandas函数

theme: smartblue 最近在做交易数据的统计分析时,多次用到数据行之间的一些操作,对于其中的细节,简单做了个笔记。 1. shfit函数 shift函数在策略回测代码中经常出现,计算交易信号,持仓信号以及资金曲线时都有涉及。这个函数的主要作用是将某列的值上下移动。默认情况下,shift函

VS Code常用快捷键

前言 对于开发者而言,熟悉快捷键的使用,能够起到事半功倍的作用,提高工作效率。以下是我整理的一份VS Code常用快捷键清单,希望能够帮助到你,欢迎在评论区留下你的常用快捷键🤞。 设置VS Code中的键盘快捷方式 Ctrl + K + S 常用快捷键 快捷键描述 Ctrl + Shift + P

Swift中发布-订阅框架Combine的使用

Combine简介 Combine是一个苹果用来处理事件的新的响应式框架,支持iOS 13及以上版本。 你可以使用Combine去统一和简化在处理类似于target-action,delegate,kvo等事情的代码。 iOS目前已经有第三方的响应式框架了,如:RxSwift、ReactiveCoc

Swift中UITableViewDiffableDataSource的使用

在 iOS 13 中 Apple 为 UITableView 和 UICollectionView 引入了 DiffableDataSource, 让开发者可以更简单高效的实现 UITableView、UICollectionView 的局部数据刷新。 新的刷新的方法为 apply 通过使用 app

Swift与OC混编

Swift调OC 在Swift项目中调用OC类中的方法需要有个{targetName}-Bridging-Header.h文件,在这个文件中导入OC要暴露给Swift的类。 {targetName}-Bridging-Header.h文件的创建有2种方式 1.自己手动创建,然后在配置文件的Objec

modulemap的使用方法

modulemap的作用 modulemap 文件是用来解决 C,Object-C,C++ 代码在 Swift 项目中集成的问题的。 在 Swift 项目中,如果需要使用 C,Object-C 或者 C++ 代码,需要将相应的头文件和源文件导入到项目中,并且需要手动管理它们之间的依赖关系。导致项目结

Swift之struct二进制大小分析

随着Swift的日渐成熟和给开发过程带来的便利性及安全性,京喜App中的原生业务模块和基础模块使用Swift开发占比逐渐增高。本次讨论的是struct对比Class的一些优劣势,重点分析对包体积带来的影响及规避措施。

Swift下Data处理全流程:从网络下载,数模转换,本地缓存到页面使用

Swift下将网络返回json数据转换成struct 假如网络请求返回的数据结构是一个深层嵌套的Json 首先要通过key-value取出这个json中的数据源 // 将返回的json字符串转Dictory let json = """ { "name": "jack", "age": 20, "d