Swift 如何使用String.substringWithRange

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:)函数、访问数组中的元素、确定一个值是否在一个给定的范围内以及许多其他情况。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程