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集合操作的更多相关文章

  1. swift是面向对象、面向协议、高阶类型、灵活扩展、函数式编程语言

    swift是面向对象.面向协议.高阶类型.灵活扩展.函数式编程语言

  2. Python中匿名函数与内置高阶函数详解

    大家好,从今天起早起Python将持续更新由小甜同学从 初学者的角度 学习Python的笔记,其特点就是全文大多由 新手易理解 的 代码与注释及动态演示 .刚入门的读者千万不要错过! 很多人学习pyt ...

  3. react第七单元(组件的高级用法-组件的组合(children的用法)-高阶组件-封装组件)

    第七单元(组件的高级用法-组件的组合(children的用法)-高阶组件-封装组件) #受控组件 简而言之,就是受到状态state控制的表单,表单的值改变则state值也改变,受控组件必须要搭配onc ...

  4. RAC中常见的高级用法-组合

    组合: concat组合:           按一定顺序执行皇上与皇太子关系 concat底层实现:     1.当拼接信号被订阅,就会调用拼接信号的didSubscribe     2.didSu ...

  5. swift中Double转String

    swift上手有好几天了.发现swift除了本身的几个基本类型转换,一些比较特殊的数值类型转换需要“桥接”到Objective-C来进行- 代码当然也很简单- var numString = &quo ...

  6. 随机记录工作中常见的sql用法错误(一)

    没事开始写博客,留下以前工作中常用的笔记,内容不全或者需要补充的可以留言,我只写我常用的. 网上很多类似动软生成器的小工具,这类工具虽然在表关系复杂的时候没什么软用,但是在一些简单的表结构关系还是很方 ...

  7. Sql server存储过程中常见游标循环用法

    用游标,和WHILE可以遍历您的查询中的每一条记录并将要求的字段传给变量进行相应的处理 DECLARE ), ), @A3 INT DECLARE YOUCURNAME CURSOR FOR SELE ...

  8. Swift中"#"的用法

    配置外部参数名 在函数(或者方法)的参数名前添加"#",可以使该参数拥有相同的本地参数名和外部参数名. 注:在方法中,第二个及后续的参数,默认是具有和内部参数一致的外部参数名的,只 ...

  9. RAC中常见的高级用法-bind方法

    RAC操作思想:      Hook(钩子)思想 RAC核心方法:bind      bind方法      假设想监听文本框的内容,并且在每次输出结果的时候,都在文本框的内容拼接一段文字" ...

  10. RAC中常见的高级用法-过滤

    filter      过滤信号,使用它可以获取满足条件的信号. - (void)filter { //只有当我们文本框内容长度大于5才想要获取文本框的内容 [[_passWord.rac_textS ...

随机推荐

  1. 路径规划之 A* 算法

    算法介绍 A*(念做:A Star)算法是一种很常用的路径查找和图形遍历算法.它有较好的性能和准确度.本文在讲解算法的同时也会提供Python语言的代码实现,并会借助matplotlib库动态的展示算 ...

  2. 【题解】Qin Shi Huang's National Road System HDU - 4081 ⭐⭐⭐⭐ 【次小生成树】

    During the Warring States Period of ancient China(476 BC to 221 BC), there were seven kingdoms in Ch ...

  3. 三、springboot集成达梦

    1.数据库中创建表 1.数据库中创建表 CREATE TABLE TEST_BLOCK_T ( BLOCK_ID VARCHAR2(10 BYTE) PRIMARY KEY, --编码 BLOCK_N ...

  4. vue Promise的使用

    一.Promise是什么? Promise是异步编程的一种解决方案. 二.那什么时候我们会来处理异步事件呢? 1. 一种很常见的场景应该就是网络请求了. 我们封装一个网络请求的函数,因为不能立即拿到结 ...

  5. uni-app阿里图标引用

    @font-face { font-family: "iconfont"; /* Project id 2566540 */ src: url('~@/static/fonts/i ...

  6. python 基础 | 虚拟环境搭建全流程

    首先,建立 python 虚拟环境 test_env: python3 -m venv test_env # 激活虚拟环境 source ./test_env/bin/activate # linux ...

  7. 44从零开始用Rust编写nginx,命令行参数的设计与解析及说明

    wmproxy wmproxy已用Rust实现http/https代理, socks5代理, 反向代理, 静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代 ...

  8. [转帖]NET Framework 版本和依赖关系

    https://learn.microsoft.com/zh-cn/dotnet/framework/migration-guide/versions-and-dependencies 每个版本的 . ...

  9. [转帖]15--k8s之安全认证

    https://www.cnblogs.com/caodan01/p/15137987.html 目录 一.访问控制概述 二.认证管理 三.授权管理 虽然authorization-clusterro ...

  10. Oceanbase开源版 数据库恢复MySQL数据库的过程

    # Oceanbase开源版 数据库恢复MySQL数据库的过程 背景 想进行一下Oceanbase数据库的兼容性验证. 想着用app create 数据库的方式周期比较长. 所以我想着换一套 备份恢复 ...