Swift 程序删除前导零

swiftserver side programmingprogramming更新于 2025/9/19 16:37:17

处理字符串时,我们有时会遇到一些前导数字为零的数字字符串,例如 000003232、00321 等。要从数字字符串中删除前导零,请执行以下操作:-

  • 使用 removeFirst() 和 hasPrefix() 方法

  • 使用 firstIndex() 和 dropFirst() 方法

示例

输入:String = "000003231"

输出:"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("原始字符串:", enteredString)
print("修改后的字符串(删除前导零后):", 输出)

输出

原始字符串:0000037763986
修改后的字符串(删除前导零后):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("原始字符串:", inputStr)
print("删除前导零后的字符串:", resultStr)

输出

原始字符串:0000093872
删除前导零后的字符串:3872

结论

以上就是我们如何从给定字符串中删除前导零。上述方法可以从输入字符串中删除任意数量的前导零。这些方法只能删除前导零。如果您想从给定字符串的两侧删除零,则可以使用 trimmingCharacters() 函数。



相关文章



关于我们 | 隐私条款 | 学习路线
返回顶部