首页 > 其他分享 >Swift中常见的String用法,Array高阶使用,Set集合操作

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

时间:2023-05-25 18:44:47浏览次数:39  
标签:Set String 映射 let 数组 字符串 John Swift

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)

 

 

 

标签:Set,String,映射,let,数组,字符串,John,Swift
From: https://www.cnblogs.com/zhou--fei/p/17432566.html

相关文章

  • ES启动错误 ERROR: the system property [es.path.conf] must be set
    JDK版本出问题。我的ElasticSearch版本为7.9.1,JDK版本为11对于不想修改系统JDK版本的可以使用elasticsearch自带的jdk启动服务。1.找到 elasticsearch-env.bat 中的if"%JAVA_HOME%"==""(setJAVA="%ES_HOME%\jdk\bin\java.exe"setJAVA_HOME="%ES_HOME%\jd......
  • Python集合 (set) 的增删改查及 copy()方法
    集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的。以下是集合最重要的两点:1、去重,把一个列表变成集合,就自动去重了。2、关系测试,测试两组数据之前的交集、差集、并集等关系。一、集合的创建set1=set({1,2......
  • Pytest - setup 和 teardown
    Pytest-setup和teardown执行用例肯定有些需要前置条件或后置操作,例如前置的用户登陆,后置的清理数据等操作;unittest提供了两种前置(setup、setupClass)和两种后置(teardown、teardownClass);相比之下,pytest提供了十种setup和teardown方法:模块级别:setup_module、te......
  • String 和 StringBuilder的区别与性能
    string和StringBuilder都可以用在串联字符串上,但是其性能在不同的场景下会有很大的差别。1、使用string+场景:多个字串通过+来进行连接,如下所示,此时都在一条语句里面,因此内部会通过StringBuilder对象来完成对应的连接,此时推荐使用string+来连接字串strings1,s2,s3,......
  • java 通过String关键词 和 String对象创建字符串 耗时对比
    importjava.util.ArrayList;importjava.util.Vector;publicclassImoocStudent{publicstaticvoidmain(Stringargs[]){longstartTime=System.currentTimeMillis();for(inti=0;i<5000000;i++){Strings1="he......
  • Oceans on a Shoestring: Shape Representation, Meshing and Shading(低成本的海洋:形
    作者:HuwBowles单位:StudioGoboIntroduction(简介):StudioGoboisasmallteamoftalenteddevelopersbasedinBrighton/UKTheCrew(成员):BenAndrews,PaulAyliffe,AnastasiosBrakis,JimCallin,ClementDagneauKevinHayes,WillMyles,OlliverReid-Smith,Phi......
  • SpringBoot 出现 Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘
    问题点1:如果Content-Type设置为“application/x-www-form-urlencoded;charset=UTF-8”无论是POST请求还是GET请求都是可以通过这种方式成功获取参数,但是如果前端POST请求中的body是Json对象的话,会报上述错误。请求中传JSON时设置的Content-Type如果是application/json或者tex......
  • 【异常】Failed to bind properties under ‘logging.level‘ to java.util.Map<java.l
    本文目录一、背景描述二、问题原因原因1:缺少层级原因2:标点符号使用错误三、解决方案方案一:针对原因1方案二:针对原因2一、背景描述项目技术:springboot2.1.5.RELEASE+logback1.2.3项目启动报错:org.springframework.boot.context.properties.bind.BindException:Failedtobindp......
  • StringTokenizer 分隔符
    Java中我们可以使用StringTokennizer设置不同分隔符来分隔字符串,默认的分隔符是:空格、制表符(\t)、换行符(\n)、回车符(\r)。以下实例演示了StringTokennizer使用空格和等号来分隔字符串:importjava.util.StringTokenizer;publicclassImoocStudent{publicstaticvoi......
  • 在java中String类为什么要设计成final?Java面试常见问题
    其实在Java中,String类被final修饰,主要是为了保证字符串的不可变性,进而保证了它的安全性。那么final到底是怎么保证字符串安全性的呢?接下来就让我们一起来看看吧。一. final的作用1. final关键词修饰的类不可以被其他类继承,但是该类本身可以继承其他类,通俗地说就是这个类可以......