Swift数组截取详解

一、基本概念

1、Swift数组


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

2、ArraySlice数组片段

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


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

二、下标截取

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


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

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


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

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

切片下标语法如下:


arr[startIndex..<endIndex]
arr[startIndex...endIndex]

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


//定义一个包含整型数据的数组
var arr: Array<Int> = [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<String> = ["one", "two", "three", "four", "five"]
//使用Range下标进行截取
let subArr = strArr[1..<3]
print(subArr) //["two", "three"]

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


//定义一个包含字符串数据的数组
var strArr: Array<String> = ["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<Element>

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


//定义一个包含整型数据的数组
var arr: Array<Int> = [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<Element>

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


//定义一个包含字符串数据的数组
var strArr: Array<String> = ["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<Element>

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


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

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

dropLast方法语法如下:


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

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


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

五、异常情况处理

1、下标越界

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


//定义一个包含整型数据的数组
var arr: Array<Int> = [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<Int> = []
//截取空数组异常处理示例
let subArr = emptyArr.prefix(3)
if subArr.isEmpty {
  print("Empty Array") //Empty Array
}

原创文章,作者:ERSQL,如若转载,请注明出处:https://www.506064.com/n/351661.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
ERSQLERSQL
上一篇 2025-02-17 17:02
下一篇 2025-02-17 17:02

相关推荐

  • Python导入数组

    本文将为您详细阐述Python导入数组的方法、优势、适用场景等方面,并附上代码示例。 一、numpy库的使用 numpy是Python中一个强大的数学库,其中提供了非常丰富的数学函…

    编程 2025-04-29
  • Python返回数组:一次性搞定多种数据类型

    Python是一种多用途的高级编程语言,具有高效性和易读性的特点,因此被广泛应用于数据科学、机器学习、Web开发、游戏开发等各个领域。其中,Python返回数组也是一项非常强大的功…

    编程 2025-04-29
  • Python去掉数组的中括号

    在Python中,被中括号包裹的数据结构是列表,列表是Python中非常常见的数据类型之一。但是,有些时候我们需要将列表展开成一维的数组,并且去掉中括号。本文将为大家详细介绍如何用…

    编程 2025-04-29
  • Python操作数组

    本文将从多个方面详细介绍如何使用Python操作5个数组成的列表。 一、数组的定义 数组是一种用于存储相同类型数据的数据结构。Python中的数组是通过列表来实现的,列表中可以存放…

    编程 2025-04-29
  • Python二维数组对齐输出

    本文将从多个方面详细阐述Python二维数组对齐输出的方法与技巧。 一、格式化输出 Python中提供了格式化输出的方法,可以对输出的字符串进行格式化处理。 names = [‘A…

    编程 2025-04-29
  • Java创建一个有10万个元素的数组

    本文将从以下方面对Java创建一个有10万个元素的数组进行详细阐述: 一、基本介绍 Java是一种面向对象的编程语言,其强大的数组功能可以支持创建大规模的多维数组以及各种复杂的数据…

    编程 2025-04-28
  • Python数组随机分组用法介绍

    Python数组随机分组是一个在数据分析与处理中常用的技术,它可以将一个大的数据集分成若干组,以便于进行处理和分析。本文将从多个方面对Python数组随机分组进行详细的阐述,包括使…

    编程 2025-04-28
  • Python数组索引位置用法介绍

    Python是一门多用途的编程语言,它有着非常强大的数据处理能力。数组是其中一个非常重要的数据类型之一。Python支持多种方式来操作数组的索引位置,我们可以从以下几个方面对Pyt…

    编程 2025-04-28
  • Python语言数组从大到小排序符号的用法介绍

    当我们使用Python进行编程的时候,经常需要对数组进行排序从而使数组更加有序,而数组的排序方式有很多,其中从大到小排序符号是一种常见的排序方式。本文将从多个方面对Python语言…

    编程 2025-04-28
  • Python列表转numpy数组

    本文将阐述Python中列表如何转换成numpy数组。在科学计算和数据分析领域中,numpy数组扮演着重要的角色。Python与numpy的无缝结合使得数据操作更加方便和高效。因此…

    编程 2025-04-27

发表回复

登录后才能评论