Swift字符串截取与Range使用

Swift字符串截取与Range使用,第1张

开发语言:Swift 42

开发环境:Xcode 101

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

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

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

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

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

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

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

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

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

输出:

["b", "c", "d", "e"]

["b", "c", "d", "e"]

["b", "c", "d"]

["b", "c", "d"]

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

输出:

1

b

4

e

4

e

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

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

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

输出:

["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<StringIndex>

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

输出:

23456 //下标1~下标5(包括5)

67 //下标5~下标7(不包括7)

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

23456789 //下标1~end

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

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

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

输出:

123 //截取4567前面的部分

89 //截取4567后面的部分

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

89 //效果与rangeupperBound一样,截取rangeupperBound后面的部分

代码如下:

def even_sum(num):

result = 0

for i in range(1,num + 1):

if i % 2 == 0:

result+= i

return result

print(even_sum(100))更简便的方法是使用列表推导 一行代码就行:print(sum([i for i in range(0,101,2 )]))

在一个连续的工作表中,可以使用语句取得最大行和列

_Worksheet ws;

Range range;

range = wsGetUsedRange();//获得Worksheet已使用的范围

range = rangeGetRows(); //获得总行数(LPDISPATCH类型)

long UsedRows = rangeGetCount(); //即可获得已使用的行数了。

以上就是关于Swift字符串截取与Range使用全部的内容,包括:Swift字符串截取与Range使用、使用range函数,获得1到100之间(含100)全部偶数的代码是、怎样获取EXCEL文件中的已用过的行数和列数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9329544.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存