Swift 如何使用String.substringWithRange
你可以使用两种语法(…<或…)指定范围操作符。这两种语法用于不同的目的。作为第一种语法的一部分,范围的起始值和结束值都包括在内。相反,第二种语法包括一个起始值和一个可选的终止值。
例如,你想指定一个从数字1到4的范围,你可以像这样定义1…<5的范围运算符语法。以类似的方式,要指定从1到5的范围,你可以像范围运算符的1…5语法那样创建一个范围。这两种语法都可以与for-in循环一起使用,进行迭代。
Swift中有哪些类型的范围操作符
在Swift中,有两种类型的范围操作符 −
- 闭合范围操作符(…)–该操作符定义了一个包括第一个和最后一个值的范围。例如,1…5定义了一个从1到5的整数范围,包括在内。
-
半开范围操作符(…<)–该操作符定义了一个包括第一个值但不包括最后一个值的范围。例如,1…<5定义了一个从1到4的整数范围。
如果整数、浮点数和字符串符合可比较协议,就可以对它们使用这两个运算符。
例子
let closedRange = 1...5
let halfOpenRange = 1..<5
let strClosedRange = "a"..."e"
let strHalfOpenRange = "a"..<"e"
这两种类型的范围也可以通过各种方式使用,比如在for循环中,访问数组中的元素,检查一个值是否在特定范围内,等等。
范围在Swift中是如何工作的
在Swift中,范围是用范围操作符(…<或…)定义的,并指定一个值的范围。范围操作符 …< 定义的范围包括第一个值,但不包括最后一个值,而范围操作符 … 则包括第一个和最后一个值。
例如,1…<5定义了一个从1到4的整数范围,而1…5定义了一个从1到5的整数范围。
范围可以在Swift中以各种方式使用
在for循环中
范围运算符非常常用于for循环。范围运算符在for循环中提供了灵活的元素迭代。
例子
import Foundation
for element in 1...5 {
print("Element: \(element)")
}
输出
Element: 1
Element: 2
Element: 3
Element: 4
Element: 5
访问一个数组中的元素
范围操作符可以用来访问一个数组或其他集合中的元素组。
例子
import Foundation
let languages: [String] = ["PHP", "Java", "Swift", "Python", "JavaScript", "GoLang"]
let subarray = languages[1..<3]
print("Original array: \(languages)")
print("Subarray: \(subarray)")
输出
Original array: ["PHP", "Java", "Swift", "Python", "JavaScript", "GoLang"]
Subarray: ["Java", "Swift"]
使用范围来迭代一个数组
这是最常用的范围操作符,可以简单地迭代一个数组。
例子
import Foundation
let languages: [String] = ["PHP", "Java", "Swift", "Python", "JavaScript", "GoLang"]
for index in 0..<languages.count {
print("Element: \(languages[index])")
}
输出
Element: PHP
Element: Java
Element: Swift
Element: Python
Element: JavaScript
Element: GoLang
使用一个范围来检查一个值是否在一个特定的范围内
你可以检查一个值是否存在于一个范围内。范围操作符使这一检查变得简单。
例子
import Foundation
let number = 25
if (10..<30).contains(number) {
print("\(number) is within the range of 10 to 30")
}
输出
25 is within the range of 10 to 30
使用一个范围来检查一个值是否在switch case的范围内
在Swift语言中,switch语句是非常强大的。你可以在Switch的情况下使用范围操作符。
例子
import Foundation
let score = 85
switch score {
case 0..<50:
print("You failed")
case 50..<70:
print("You passed")
case 70...100:
print("You got an A")
default:
print("Invalid score")
}
输出
You got an A
在stride(from:to:by:)函数中使用一个范围
你可以在stride()函数中提供一个范围,以提供起始值和终止值,以及一个增量计数。
例子
import Foundation
for i in stride(from: 0, to: 10, by: 2) {
print(i)
}
输出
0
2
4
6
8
如何使用String.substringWithRange
在Swift 5中,我们不再有机会使用substring()方法,因为它们已经被废弃了。我们将讨论所有的替代方法并详细了解它们。
在Swift 4.2及以上版本中,substring(with:)方法已经更新为String[startIndex...<endIndex]
或String[...<endIndex]
,可以使用范围从一个字符串中提取子串。下面是一个使用这种新语法的例子 –
例子
import Foundation
let sampleString = "Hello World!"
let index = sampleString.index(sampleString.startIndex, offsetBy: 5)
let substring = sampleString[..<index]
print("Original string: \(sampleString)")
print("Substring: \(substring)")
输出
Original string: Hello World!
Substring: Hello
总结
在Swift中,范围是用来创建一个数值范围的,它可以有多种应用。闭合范围运算符和半开范围运算符是两种不同类型的范围运算符。范围可以用于开关语句、for循环、stride(from:to:by:)函数、访问数组中的元素、确定一个值是否在一个给定的范围内以及许多其他情况。