Golang 去除前导零
在Golang中,将出现在数字或字符串开头的任何零都称为“去除前导零”。前导零通常用于格式化或对齐的需要,尽管它们没有传达任何重要信息。可以通过去除前导零来改善数字或字符串的可用性和可读性。但需要注意,前导零有时对于特定的应用程序,如金融或科学应用程序可能是至关重要的。让我们通过本程序来清楚地理解这个概念。在这个程序中,我们将学习如何使用不同的示例来去除前导零。
方法1:使用TrimLeft函数
该方法使用TrimLeft函数从输入字符串“0000892”中删除所有前导零(“0”),结果是输出字符串“892”。让我们通过示例和算法来看它的执行过程。
语法
TrimLeft()
要从字符串中删除前置空格或特定字符,请使用 TrimLeft() 函数。它需要两个参数:您希望更改的字符串和您希望从字符串开头删除的字符或字符。更改后的字符串将返回。
步骤
- 步骤1 −在main程序中创建一个main包,并声明fmt(格式化包)和strings包,其中main产生可执行的示例,并且fmt帮助格式化输入和输出。
-
步骤2 −创建一个main函数,并在函数内部创建一个string类型的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
方法2:使用循环迭代字符串的字符的方法
在这个方法中,使用循环遍历输入字符串中的每个字符。如果字符是零且在循环期间仍然处于前导零中,则不包括在结果中。否则,它将被检查。在检测到第一个非零字符之后,所有后续字符将被添加到结果中,并将leading_zero变量设置为false。结果字符串中不会有前导零。让我们通过示例和算法来看一下。
步骤
- 步骤1 − 创建一个main包,并在主程序中声明fmt(format包)包,其中main产生可执行的示例,fmt帮助格式化输入和输出。
-
步骤2 − 创建一个名为removeLeadingZeros的方法,接受名为str的字符串作为输入。
-
步骤3 − 声明变量leading_zero为true,output为一个空字符串。
-
步骤4 − 使用for循环遍历输入字符串中的每个字符。
-
步骤5 − 检查leading_zero是否为false或当前字符是否不是零。如果其中一个条件为真,则将当前字符添加到结果字符串中,并将leading_zero更改为false。
-
步骤6 − 循环结束后,将输出字符串返回。
-
步骤7 − 从主函数中调用removeLeadingZeros函数,并提供initial_value字符串。将结果放入output变量中。
-
步骤8 − 使用fmt.Println()函数将output变量打印在控制台上,其中ln表示换行。
示例
在此示例中,我们将学习如何使用循环迭代字符串的字符来删除前导零。
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循环来遍历每个字符。这两个程序都给出了类似的输出。
极客笔记