Go语言程序:去除前导零


在 Go 语言中,移除数字或字符串开头出现的零被称为“去除前导零”。前导零通常出于格式化或对齐的需要而添加,但它们并不包含任何重要的信息。可以去除它们以提高数字或字符串的可用性和可读性。需要注意的是,前导零有时在某些特定应用中,例如某些金融或科学应用中,可能至关重要。让我们通过这个程序来清晰地理解这个概念。在这个程序中,我们将学习如何使用不同的示例来去除前导零。

方法一:使用 TrimLeft 函数

此方法使用 TrimLeft 函数从输入字符串 "0000892" 中去除所有前导零 ("0"),从而得到输出字符串 "892"。让我们通过示例和算法来看一下它的执行。

语法

TrimLeft()

要从字符串中移除前导空格或特定字符,请使用 **TrimLeft()** 函数。它需要两个参数:要更改的字符串以及要从字符串开头删除的字符或字符。它将返回修改后的字符串。

算法

  • **步骤 1** - 创建一个 main 包,并在程序中声明 fmt(格式化包)和 strings 包,其中 main 生成可执行示例,fmt 帮助格式化输入和输出。

  • **步骤 2** - 创建一个 main 函数,并在该函数内创建一个字符串变量 initial_value 并赋予它一个带有前导零的值。

  • **步骤 3** - 使用 TrimLeft 函数对 initial_value 变量进行操作,删除字符(在本例中为 "0"),将其作为参数传递。

  • **步骤 4** - 创建一个新的变量 output 并将其赋值为 TrimLeft 函数的输出。

  • **步骤 5** - 使用 fmt.Println() 函数(其中 ln 表示换行)将输出打印到控制台。

  • **步骤 6** - TrimLeft 函数的工作方式是从字符串的开头删除您指定的字符。在本例中,它删除所有前导零。然后将输出变量设置为结果,然后将其打印到控制台。

示例

在这个例子中,我们将看到如何使用 TrimLeft() 函数去除前导零。

package main
import (
   "fmt" 
   "strings"
)

func main() {
   initial_value := "0000000000892" //create a string with leading zeros
   fmt.Println("The initial input value is:", initial_value)

   output := strings.TrimLeft(initial_value, "0")//remove leading zeros using built-in function
   fmt.Println("The result after removing leading zeros is:")
   fmt.Println(output) //print output on the console
}

输出

The initial input value is: 0000000000892
The result after removing leading zeros is:
892

方法二:使用循环迭代字符串的字符

在此方法中,此示例中使用循环迭代输入字符串中的每个字符。如果该字符是零并且在循环期间仍然是前导零,则不会将其添加到结果中。否则,将对其进行检查。在检测到第一个非零字符后,所有后续字符都将添加到结果中,并将 leading_zero 变量设置为 false。结果字符串中将没有任何前导零。让我们来看一下示例和算法。

算法

  • **步骤 1** - 创建一个 main 包,并在程序中声明 fmt(格式化包)包,其中 main 生成可执行示例,fmt 帮助格式化输入和输出。

  • **步骤 2** - 创建一个名为 removeLeadingZeros 的方法,它接受一个名为 str 的字符串作为输入。

  • **步骤 3** - 将变量 leading_zero 声明为 true,并将 output 声明为空字符串。

  • **步骤 4** - 使用 for 循环迭代输入字符串中的每个字符。

  • **步骤 5** - 在循环内检查 leading_zero 是否为 false 或当前字符是否不是零。如果其中一个条件为真,则将当前字符添加到结果字符串并将 leading_zero 更改为 false。

  • **步骤 6** - 循环终止后,返回输出字符串。

  • **步骤 7** - 从 main 函数调用 removeLeadingZeros 函数并提供 initial_value 字符串。将结果放入 output 变量。

  • **步骤 8** - 使用 fmt.Println() 函数(其中 ln 表示换行)将 output 变量打印到控制台。

示例

在这个例子中,我们将学习如何使用循环迭代字符串的字符来去除前导零。

package main
import (
   "fmt"
)

func removeLeadingZeros(str string) string {
   var output string    //create an empty string
   leading_zero := true     //set the flag as true 
   for _, ch := range str {
      if ch != '0' || !leading_zero {
         output += string(ch)
         leading_zero = false
      }
   }
   return output //return the output with no leading zeros
}

func main() {
   initial_value := "000000000892"   //create a string with leading zeros
   fmt.Println("The initial input value is:", initial_value)
   output := removeLeadingZeros(initial_value)
   fmt.Println("The result after removing leading zeros is:")
   fmt.Println(output)  //print the output on the console with no leading zeros
}

输出

The initial input value is: 000000000892
The result after removing leading zeros is:
892

结论

我们使用两个示例执行了去除前导零的程序。在第一个示例中,我们使用了内置函数 TrimLeft,在第二个示例中,我们使用 for 循环迭代每个字符。这两个程序都给出类似的输出。

更新于:2023年2月20日

3K+ 浏览量

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告