如何在 Swift 中移除字符串开头的所有空格?
在 Swift 中,有多种方法可以移除字符串开头的空格。有一些可用的方法,例如 trimmingCharacters、drop 等。您还可以使用 NSRegularExpression 类来修剪字符串中所有开头的空格。
使用 trimmingCharacters() 方法
trimmingCharacters(in:) 方法是 Swift 的 String 类中的一个内置方法,它允许您从字符串中移除开头和/或结尾的字符。
该方法接受一个参数,该参数是一个 CharacterSet 对象,用于定义要移除的字符集。您可以使用 CharacterSet 类的静态属性(例如 whitespaces、whitespacesAndNewlines、decimalDigits 等)来创建 CharacterSet 对象。您还可以使用其初始化器创建一个自定义 CharacterSet 对象,该初始化器接受一个字符字符串作为参数。
以下是如何使用 trimmingCharacters(in:) 方法从字符串中移除开头空格的示例
在以下示例中,trimmingCharacters(in:) 方法在 inputString 变量上调用,并以 CharacterSet.whitespaces 字符集作为参数。这将移除字符串中所有开头和结尾的空格字符。
示例
import Foundation let inputString = "Lorem Ipsum is simply dummy text of the printing and typesetting industry." let trimmedString = inputString.trimmingCharacters(in: .whitespaces) print("Original String: \(inputString)") print("Trimmed String: \(trimmedString)")
输出
Original String: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Trimmed String: Lorem Ipsum is simply dummy text of the printing and typesetting industry.
使用 drop(while:) 方法
drop(while:) 方法是 Swift 的 String 类中的一个内置方法,它允许您在满足特定条件时从字符串中移除开头字符。
该方法接受一个闭包作为参数,该闭包应返回一个布尔值,指示是否应丢弃给定字符。drop(while:) 方法返回一个新的 Substring 实例,该实例从闭包返回 false 的第一个字符开始。
以下是如何使用 drop(while:) 方法从字符串中移除开头空格的示例
在以下示例中,我们使用 drop(while:) 方法从字符串中移除所有开头的空格字符。
示例
import Foundation let inputString = "Lorem Ipsum is simply dummy text of the printing and typesetting industry." let trimmedString = inputString.drop(while: { $0.isWhitespace }) print("Original String: \(inputString)") print("Trimmed String: \(trimmedString)")
输出
Original String: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Trimmed String: Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
使用 NSRegularExpression 类进行正则表达式匹配
NSRegularExpression 类是 Swift 中的一个强大工具,它允许您使用正则表达式在字符串中查找和操作模式。
要使用 NSRegularExpression,您首先通过将正则表达式模式作为字符串传递来创建该类的实例。然后,您可以使用此实例在字符串中搜索匹配项或将字符串中的模式替换为新值。
示例
import Foundation let inputString = "Lorem Ipsum is simply dummy text of the printing and typesetting industry." let pattern = "^\s+" let regex = try! NSRegularExpression(pattern: pattern) let range = NSRange(location: 0, length: inputString.utf16.count) let trimmedString = regex.stringByReplacingMatches(in: inputString, options: [], range: range, withTemplate: "") print("Original String: \(inputString)") print("Trimmed String: \(trimmedString)")
输出
Original String: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Trimmed String: Lorem Ipsum is simply dummy text of the printing and typesetting industry.
在上面的示例中,我们创建了一个正则表达式模式 "^\s+",它匹配一个或多个开头的空格字符。然后,我们使用 NSRegularExpression 类创建一个正则表达式对象,并使用 stringByReplacingMatches(in:options:range:withTemplate:) 方法将其应用于输入字符串,以将所有匹配项替换为空字符串。
使用 firstIndex(where:) 方法
您还可以使用 firstIndex(where:) 方法在 Swift 中从字符串中移除开头空格。firstIndex(where:) 方法返回集合中第一个满足给定谓词的元素的索引。通过对字符串使用检查字符是否为空格的谓词来使用此方法,您可以找到第一个非空格字符的索引
示例
import Foundation let inputString = "Lorem Ipsum is simply dummy text of the printing and typesetting industry." if let index = inputString.firstIndex(where: { char in !char.isWhitespace }) { let trimmedString = String(inputString[index...]) print("Original String: \(inputString)") print("Trimmed String: \(trimmedString)") }
输出
Original String: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Trimmed String: Lorem Ipsum is simply dummy text of the printing and typesetting industry.
在此示例中,firstIndex(where:) 方法在 inputString 变量上调用,并使用一个闭包,该闭包使用 isWhitespace 属性检查每个字符是否不是空格字符。firstIndex(where:) 方法返回第一个非空格字符的索引,如果不存在非空格字符则返回 nil。此处使用 ?? 运算符在 firstIndex(where:) 返回 nil 时提供一个默认值 inputString.endIndex(即字符串的末尾)。
结论
总之,在 Swift 中,您可以采取多种方法来移除字符串开头的空格。
一种方法是使用 String 类的 trimmingCharacters(in:) 方法,该方法会移除字符串开头和结尾的空格字符。
您还可以使用 String 类的 drop(while:) 方法,在给定谓词为真时移除字符串开头的元素。
此外,您可以使用 String 类的 firstIndex(where:) 方法查找字符串中第一个非空格字符的索引,然后使用 suffix(from:) 方法创建一个从该索引开始的新字符串。
最后,您还可以使用 Foundation 框架中的 NSRegularExpression 类来使用正则表达式在字符串中查找和操作模式。
每种方法都有其自身的优缺点,具体取决于代码的特定需求。