开发语言: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文件中的已用过的行数和列数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)