千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > Swift数组截取详解

Swift数组截取详解

来源:千锋教育
发布人:xqq
时间: 2023-11-21 16:00:41 1700553641

一、基本概念

1、Swift数组


//定义一个包含整型数据的数组
var arr: Array = [120, 130, 140, 150, 160]

2、ArraySlice数组片段

ArraySlice是数组的一个“指针”,它指向一个原数组的片段,包含原数组的某些位置。在这个基础上,我们可以实现对原数组的截取。


//定义一个包含整型数据的数组
var arr: Array = [120, 130, 140, 150, 160]
//使用ArraySlice进行截取
let arrSlice = arr[1...3]
//ArraySlice的类型是一个Slice>对象
print(type(of: arrSlice)) //Slice>

二、下标截取

1、使用整型下标对数组进行截取


//定义一个包含整型数据的数组
var arr: Array = [120, 130, 140, 150, 160]
//使用整型下标进行截取
let subArr = arr[1...3]
print(subArr) //[130, 140, 150]

2、使用Range下标对数组进行截取


//定义一个包含整型数据的数组
var arr: Array = [120, 130, 140, 150, 160]
//使用Range下标进行截取
let subArr = arr[1..<3]
print(subArr) //[130, 140]

3、使用切片下标对数组进行截取

切片下标语法如下:


arr[startIndex..

其中,startIndex表示起始位置,endIndex表示终止位置,两个点(..)表示包含终止位置,三个点(...)表示不包含终止位置。


//定义一个包含整型数据的数组
var arr: Array = [120, 130, 140, 150, 160]
//使用切片下标进行截取
let subArr = arr[1...3] //包含终止位置
let subArr2 = arr[1..<3] //不包含终止位置
print(subArr) //[130, 140, 150]
print(subArr2) //[130, 140]

三、截取String类型数组

1、使用Range下标对数组进行截取


//定义一个包含字符串数据的数组
var strArr: Array = ["one", "two", "three", "four", "five"]
//使用Range下标进行截取
let subArr = strArr[1..<3]
print(subArr) //["two", "three"]

2、使用切片下标对数组进行截取


//定义一个包含字符串数据的数组
var strArr: Array = ["one", "two", "three", "four", "five"]
//使用切片下标进行截取
let subArr = strArr[1...3] //包含终止位置
let subArr2 = strArr[1..<3] //不包含终止位置
print(subArr) //["two", "three", "four"]
print(subArr2) //["two", "three"]

四、使用数组方法进行截取

1、使用prefix方法获取数组前几个元素

prefix方法语法如下:


arr.prefix(_ maxLength: Int) -> ArraySlice

其中,maxLength表示截取的最大长度。


//定义一个包含整型数据的数组
var arr: Array = [120, 130, 140, 150, 160]
//使用prefix方法获取前3个元素
let subArr = arr.prefix(3)
print(subArr) //[120, 130, 140]

2、使用suffix方法获取数组后几个元素

suffix方法语法如下:


arr.suffix(_ maxLength: Int) -> ArraySlice

其中,maxLength表示截取的最大长度。


//定义一个包含字符串数据的数组
var strArr: Array = ["one", "two", "three", "four", "five"]
//使用suffix方法获取后3个元素
let subArr = strArr.suffix(3)
print(subArr) //["three", "four", "five"]

3、使用dropFirst方法截取数组头部元素

dropFirst方法语法如下:


arr.dropFirst(_ k: Int) -> ArraySlice

其中,k表示要截取的元素数量。


//定义一个包含整型数据的数组
var arr: Array = [120, 130, 140, 150, 160]
//使用dropFirst方法截取前两个元素
let subArr = arr.dropFirst(2)
print(subArr) //[140, 150, 160]

4、使用dropLast方法截取数组尾部元素

dropLast方法语法如下:


arr.dropLast(_ k: Int) -> ArraySlice

其中,k表示要截取的元素数量。


//定义一个包含字符串数据的数组
var strArr: Array = ["one", "two", "three", "four", "five"]
//使用dropLast方法截取后两个元素
let subArr = strArr.dropLast(2)
print(subArr) //["one", "two", "three"]

五、异常情况处理

1、下标越界

当截取的范围超过数组边界时,Swift会抛出一个fatal error,需要在代码中进行异常处理。


//定义一个包含整型数据的数组
var arr: Array = [120, 130, 140, 150, 160]
//下标越界异常处理示例
do {
  let subArr = arr[1...10] //超过数组长度
  print(subArr)
} catch let error {
  print(error.localizedDescription) //Index out of range
}

2、使用数组方法截取空数组

当截取一个空数组时,由于没有任何元素,使用数组方法进行截取将返回一个空的ArraySlice对象。需要在代码中进行判断和处理。


//定义一个空数组
var emptyArr: Array = []
//截取空数组异常处理示例
let subArr = emptyArr.prefix(3)
if subArr.isEmpty {
  print("Empty Array") //Empty Array
}

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT