Swift 程序如何从字符串中删除所有空格
空格字符是不可打印的字符,表示字符串中的空格。Swift 提供了以下方法从字符串中删除所有空格 -
使用 isWhitespace 属性
使用 component() 函数
使用 replacementOccurrences(of:with:) 方法
使用正则表达式
方法 1:使用 isWhitespace 属性
isWhitespace 属性用于检查给定字符是否为空格字符。在此方法中,我们将 isWhitespace 属性与 filter() 方法结合使用,以删除给定字符串中存在的所有空格。
语法
var res = str.filter{!$0.isWhitespace}
这里,在 str 字符串上调用 filter() 方法。传入函数的闭包 (!$0.isWhitespace) 检查字符串中的每个字符,如果该字符不是空格,则返回 true。
示例
在下面的 Swift 程序中,我们将从字符串中删除所有空格。为此,我们创建一个以字符串为输入的函数。然后,该函数对输入的字符串使用带有 !$0.isWhitespace 闭包的 filter() 方法,逐个检查字符是否为空格。如果是,则删除该字符,并将非空格字符存储到变量中。删除所有空格后,剩余字符将使用 String() 初始化程序转换回字符串,并返回函数返回没有空格的最终字符串。
import Foundation
import Glibc
func removeWhitespacesFromString(mStr: String) -> String {
let filteredChar = mStr.filter { !$0.isWhitespace }
return String(filteredChar)
}
let input = "Mohan learn swift programming"
let resStr = removeWhitespacesFromString(mStr: input)
print("原始字符串:", input)
print("String without whitespaces:", resStr)
输出
原始字符串: Mohan learn swift programming 不带空格的字符串:Mohanlearnswiftprogramming
方法 2:使用 components() 方法
components() 方法用于根据给定字符串创建一个子字符串数组,其中每个子字符串由指定的分隔符分隔。因此,这里我们使用 components(separatedBy:.whitespaces) 方法并以 .wihitespaces 作为参数来创建一个子字符串数组,其中子字符串由空格分隔。之后,我们使用 join() 函数将所有子字符串连接成一个不带空格的字符串。
语法
str.components(separatedBy:.whitespaces)
这里,在 str 字符串上调用 component() 方法,并返回一个由空格分隔的子字符串数组。
示例
在下面的 Swift 程序中,我们将从字符串中删除所有空格。为此,我们创建一个以字符串作为输入的函数。然后,该函数使用 components(separatedBy: .whitespaces) 方法将输入字符串转换为基于空格的子字符串数组。然后,它使用 join() 方法将所有子字符串连接成一个不带空格的字符串。
import Foundation
import Glibc
func removeWhitespacesFromString(mStr: String) -> String {
let chr = mStr.components(separatedBy: .whitespaces)
let resString = chr.joined()
return resString
}
let input = "Today is the rainy day"
let resStr = removeWhitespacesFromString(mStr: input)
print("原始字符串:", input)
print("不带空格的字符串:", resStr)
输出
原始字符串:Today is the rainy day 不带空格的字符串:Todayistherainyday
方法 3:使用 replacementOccurrences() 方法
replacementOccurrences() 方法用于将所有出现的指定字符替换为给定字符。因此,我们将所有出现的空格字符(" "")替换为空字符串(""),从而从字符串中删除所有空格。
语法
func replacementOccurrences{of: tchar, with: rchar}
这里,此函数接受两个参数:一个是 tchar,即我们要替换的字符;另一个是 rchar,即我们要将 tchar 替换成的替换字符。
示例
在下面的 Swift 程序中,我们将从字符串中删除所有空格。为此,我们创建一个字符串,然后使用 replacementOccurrences(of:with:) 方法,将空格(" ")替换为空字符串(" "),并返回一个不包含空格的新字符串。最后,我们将显示输出。
import Foundation
import Glibc
let input = "Siya run a beautiful car"
let resultantString = input.replacingOccurrences(of: " ", with: "")
print("原始字符串:", input)
print("不含空格的字符串:", resultantString)
输出
原始字符串: Siya run a beautiful car 不含空格的字符串: Siyarunabeautifulcar
方法 4:使用正则表达式
我们也可以使用正则表达式从字符串中删除所有空格。这里我们使用 NSRegularExpression 类的 stringByReplacingMatches() 函数来删除所有空格。
示例
在下面的 Swift 程序中,我们将从字符串中删除所有空格。为此,我们创建一个字符串,然后创建一个带有"\s"模式的 NSRegularExpression 类实例。其中"\s"模式用于匹配空格字符。然后我们使用 stringByReplacingMatches() 函数将所有出现的空格替换为空字符串。最后,我们得到了没有空格的字符串。
import Foundation import Glibc let input = "Siya run a beautiful car" let regexValue = try! NSRegularExpression(pattern: "\\s", options: []) let newString = regexValue.stringByReplacingMatches(in: input, options: [], range: NSRange(location: 0, length: input.utf16.count), withTemplate: "") print("原始字符串:", input) print("不含空格的字符串:", newString)
输出
原始字符串: Siya run a beautiful car 不含空格的字符串: Siyarunabeautifulcar
结论
以上就是我们如何从字符串中删除所有空格。您可以使用上述任何一种方法来删除字符串中的所有空格。所有方法都能很好地完成各自的工作。从字符串中删除空格在数据验证、格式化、比较和搜索、解析等方面非常有用。