Swift中常见的String用法,Array高阶使用,Set集合操作
String字符串常见用法
生成字符串
1 2 3 4 5 6 7 8 9 10 | 创建字符串 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." |
子字符串查询,替换,插入,删除
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | 查找子字符串 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!!" |
字符串转数组
1 2 3 | 字符串分割 let names = "John, Jane, Jim" let arr = names . components ( separatedBy : ", " ) // ["John", "Jane", "Jim"] |
字符串转其他
1 2 3 | let str = "123" let num = Int ( str ) // Optional(123) let uppercased = str . uppercased () // "123" |
Array数组高阶操作
map:对给定数组每个元素,执行闭包中的映射,将映射结果放置在数组中返回。
flatMap:对给定数组的每个元素,执行闭包中的映射,对映射结果进行合并操作,然后将合并操作后的结果放置在数组中返回。
compactMap:对给定数组的每个元素,执行闭包中的映射,将非空的映射结果放置在数组中返回。
compactMap:对给定数组的每个元素,执行闭包中的映射,将非空的映射结果-键值对放置在字典中返回。
filter:对给定数组的每个元素,执行闭包中的操作,将符合条件的元素放在数组中返回。
reduce:对给定数组的每个元素,执行闭包中的操作对元素进行合并,并将合并结果返回。
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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集合操作
集合创建
1 2 | let setA = Set ([ "a" , "b" , "c" ]) let setB : Set = [ "a" , "b" , "c" ] |
增删改查
1 2 3 | setA . contains ( "a" ) setA . insert ( "c" ) setA . remove ( "a" ) |
集合运算
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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 ) |
· 分享4款.NET开源、免费、实用的商城系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2017-05-25 UICollectionView左对齐流水布局、右对齐流水布局