您当前的位置:首页 > 互联网教程

Swift字符串截取与Range使用

发布时间:2025-05-17 09:40:24    发布人:远客网络

Swift字符串截取与Range使用

一、Swift字符串截取与Range使用

在Swift中,有一套全新的截取字符串的方式

首先,我们要先熟悉以下两个类型

String.Index表示一个位置,使用String与String.Index可以获取该位置的Character

如上所示,我们构造了两个String.Index,分别表示String的第1个Character和第6个Character,

随后,使用这两个String.Index也输出了str的对应位置的Character。

但实际使用中我们往往不会手动构造String.Index,取而代之的是以下方法。

神奇的是,我们使用上面方法构造的String.Index,可以提供给任意一个String使用,而非只能用于构造它的String

可见,String.Index是独立于String存在的,用于获取或者表示某个Character位置的类型

Range<T>表示一个T类型的范围,以下使用Range<Int>依次说明Range的几种构造方式和用法

我们可以使用lowerBound和upperBound来访问Range的起始位置和结束位置,注意无论是闭区间或半开区间,他们的upperBound的位置是一样的。

我们建立了四种不同类型的Range,分别为ClosedRange,CountableClosedRange,Range,CountableRange。

其中前两个为闭区间,后两个半开区间。

同时,Swift4.0又新增了单侧区间的概念,具体如下

["a","b","c","d","e"]//start~下标4(包括4)

["b","c","d","e","f"]//下标1~end

["a","b","c","d"]//start~下标4(不包括4)

对于单侧区间,lowerBound和upperBound也只有一半,例如上例中的range1和rang3只有upperBound,range2只有lowerBound。

上一节我们介绍了Range是描述一个范围的类型,同样也构造了多种不同的Range<Int>来获取数组的值,但Range<Int>不能用来获取String的某一部分的值,想要获取String的某一部分的值,我们需要用到的是Range<String.Index>

下面我们使用3个String.Index构造5个不同的类型的Range<String.Index>,然后使用String[range]来截取字符串。

123456//start~下标5(包括5)

1234567//start~下标7(不包括7)

使用Range<String.Index>可以轻松的截取一个String,但现实使用往往需要在一个String中查找或者截取另一个String的位置。

遇到这样的需求,我们可以使用如下方法

123//效果与..<range.lowerBound一样,截取range.lowerBound前面的部分

89//效果与range.upperBound...一样,截取range.upperBound后面的部分

二、iOS Swift新手教程字符串String类型的一些常用用法

1、在Swift中,字符串(String)类型是Unicode兼容的,其使用方法类似于C语言。在Cocoa和Cocoa Touch中,Swift的String与Foundation中的NSString兼容,所有NSString的API都能调用。

2、字符串常量的初始化包括以下几种形式:

3、四字节Unicode标量,\Ummmmmmmm。这里的m为十六进制数。

4、在Swift中,字符串赋值和作为参数传递时采用值传递方式,即传递副本而非引用。与Cocoa中NSString不同,Swift的字符串常量提供了多个属性和方法,例如:

5、isEmpty属性:用于判断字符串是否为空。

6、startIndex,endIndex,countElements:返回字符串的起始、结束索引及元素数量。

7、toInt():尝试将字符串转换为整数,成功则返回Int,否则返回nil。

8、子字符串:通过advance函数获取相对于特定位置的偏移距离。

9、字符串拼接:使用加号+或字符串插值。

10、大写和小写转换:通过字符串方法自动实现。

11、前缀和后缀:用于检查字符串是否以特定字符或字符串开头或结尾。

12、子字符串处理:用于查找、替换或提取字符串中的特定部分。

13、格式化合并字符串:用于构建格式化输出的字符串。

14、utf8和utf16属性:用于获取字符串的Unicode表示形式。

15、为了提供新的方法而不修改现有类,Swift允许通过扩展类来扩展其功能。下面是一些扩展示例,包括:

16、对字符串进行子串截取的多个重载。

17、通过这些扩展,Swift为开发者提供了灵活且强大的字符串处理能力。

三、Swift| 基础语法(三)

1、总结下 swift下的基础语法,里面涉及到:常量&变量、Swift中的数据类型、逻辑分支、循环、字符串相关、数组和字典、方法的书写调用等内容,考虑到阅读体验分多篇来展示,希望对大家学习swift有所帮助,同时也是对自己的一个总结。

2、数组(Array)是一串有序的由相同类型元素构成的集合

3、简化参数名,如 1(从0开始,表示第i个参数...)

4、字典是由两部分集合构成的,一个是键(key)集合,一个是值(value)集合

5、键集合是不能有重复元素的,而值集合是可以重复的,键和值是成对出现的

6、 Swift字典类型是Dictionary,也是一个泛型集合。

7、-使用let修饰的数组是不可变字典

8、方法调用闭包中必须使用 self,类中使用时不必加self

9、有若干个不确定的参数、有一个返回值:

10、在Swift语言中,目前有五种修饰符,有 open public internal fileprivate private这五个访问权限,都可以修饰属性和方法。