Swift 程序移除前导零
在处理字符串时,有时我们会遇到一些数字字符串,其前导数字为零,例如 000003232、00321 等。要从数字字符串中移除前导零 -
使用 removeFirst() 和 hasPrefix() 方法
使用 firstIndex() 和 dropFirst() 方法
示例
Input: String = "000003231" Output: "3231 "
这里,输入字符串包含 5 个前导零,因此我们从输入字符串中移除这些零,因此结果字符串为 3231。
方法 1:使用 removeFirst() 和 hasPrefix() 方法
因此,为了从数字字符串中移除前导零,Swift 提供了名为 removeFirst() 和 hasPrefix() 的内置方法。hasPrefix() 方法用于检查给定字符串是否以“0”开头。如果字符串以零开头,则我们使用 removeFirst() 函数从字符串中移除所有前缀零。
语法
func hasPrefix(s:String) func removeFirst()
这里 hasPrefix() 函数接受一个参数,即我们要检查其是否存在于前缀中的字符串。而 removeFirst() 函数不接受任何参数,并从字符串中移除第一个字符。
算法
步骤 1 - 创建一个函数,该函数将输入字符串作为参数。
步骤 2 - 在函数内部创建原始字符串的副本。
步骤 3 - 然后运行一个 while 循环,并检查字符串是否以 0 开头,以及字符串的长度是否大于 1。
步骤 4 - 如果这两个条件都为真,则使用 removeFirst() 函数从字符串中移除第一个字符。此过程持续到循环遇到非零元素。
步骤 5 - 返回结果字符串。
步骤 6 - 创建一个字符串。
步骤 7 - 调用函数并向其传递字符串。
步骤 8 - 显示输出。
示例
在下面的 Swift 程序中,我们将从给定字符串中移除前导零。为此,我们创建一个函数,该函数接受输入字符串并移除前导零。它首先创建原始字符串的副本,然后运行一个 while 循环以使用 hasPrefix() 函数检查字符串是否以 0 开头,以及字符串的长度是否大于 1。如果这两个条件都为真,则它使用 removeFirst() 函数从字符串中移除第一个 0。此过程持续到从字符串中移除所有前导零,之后此函数返回一个结果字符串。
import Foundation import Glibc func deleteLeadingZeros(inputStr: String) -> String { var resultStr = inputStr while resultStr.hasPrefix("0") && resultStr.count > 1 { resultStr.removeFirst() } return resultStr } let enteredString = "0000037763986" let output = deleteLeadingZeros(inputStr: enteredString) print("Original String:", enteredString) print("Modified String(After deleting leading zeros):", output)
输出
Original String: 0000037763986 Modified String(After deleting leading zeros): 37763986
方法 2:使用 firstIndex() 和 dropFirst() 方法
要从数字字符串中移除前导零,我们使用 firstIndex() 和 dropFirst() 方法。firstIndex() 方法用于从给定序列中获取满足给定条件的指定值的第一个索引。如果未找到该元素,则它将返回 nil。dropFirst() 函数用于获取指定数量元素之后的全部元素。
语法
func firstIndex(where: mclosure) func dropFirst(x)
这里 hasPrefix() 函数接受一个参数,该参数是一个闭包,它将一个项目作为参数并返回一个布尔值,该布尔值表示给定项目是否通过条件。而 dropFirst() 方法接受一个参数,该参数表示要从给定序列的开头删除的元素数量。
算法
步骤 1 - 创建一个函数,该函数将输入字符串作为参数。
步骤 2 - 在函数内部,从给定字符串中查找第一个非零元素的索引。
步骤 3 - 如果存在非零元素,则从索引到给定子字符串的末尾创建一个子字符串。并使用 dropFirts() 方法从子字符串中移除第一个字符。
步骤 4 - 返回结果字符串。
步骤 5 - 创建一个字符串。
步骤 6 - 调用函数并向其传递字符串。
步骤 7 - 显示输出。
示例
在下面的 Swift 程序中,我们将从给定字符串中移除前导零。为此,我们创建一个函数,该函数接受输入字符串并移除前导零。它使用 firstIndex(where:) 方法查找第一个不等于 0 的字符的索引。如果未找到非零字符,则表示该字符串仅包含零,它将返回空字符串。如果找到非零字符,则它将从该索引到给定字符串末尾创建一个子字符串,并使用 dropFirst() 方法从子字符串中移除第一个字符,最后返回移除前导零后的字符串。
import Foundation import Glibc func deleteLeadingZeros(str: String) -> String { guard let NonZeroIndex = str.firstIndex(where: { $0 != "0" }) else { return "" } return String(str[NonZeroIndex...].dropFirst()) } let inputStr = "0000093872" let resultStr = deleteLeadingZeros(str: inputStr) print("Original String:", inputStr) print("String after removing leading zeros:", resultStr)
输出
Original String: 0000093872 String after removing leading zeros: 3872
结论
因此,这就是我们如何从给定字符串中移除前导零的方法。讨论的方法可以从输入字符串中移除任意数量的前导零。这些方法仅移除前导零,如果您想从给定字符串的两侧移除零,则可以使用 trimmingCharacters() 函数。