Golang程序 去除前导零
在Golang中,去除数字或字符串开头出现的任何零被称为 “去除前导零”。前导零经常是为了格式化或对齐的需要而包含的,尽管它们并不传达任何重要的信息。它们可以被消除,以提高数字或字符串的可用性和人类的可读性。重要的是要记住,前导零有时对特定的应用是至关重要的,如一些金融或科学的应用。让我们通过这个程序来清楚地了解一下这个概念。在这个程序中,我们将通过不同的例子来学习如何去除前导零。
方法1:使用TrimLeft函数
这个方法使用TrimLeft函数从输入字符串 “0000892 “中去除所有的前导零(”0″),从而得到输出字符串 “892”。让我们通过示例:和算法来看看它的执行情况。
语法
TrimLeft()
要从一个字符串中删除前面的空格或特定的字符,可以使用 TrimLeft() 函数。它需要两个参数:你想改变的字符串和你想从字符串的开头剔除的一个或多个字符。修改后的字符串将被送回。
算术
- 第1步 – 创建一个包main,并在程序中声明fmt(格式包)和strings包,其中main产生可执行的Example:s,fmt帮助格式化输入和输出。
-
第2步 – 创建一个main函数,在该函数中创建一个字符串initial_value变量,给它一个带前导零的值。
-
第 3步 – 在initial_value变量上使用TrimLeft函数,删除字符(本例中为 “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 package)包,其中main产生可执行的example:s,fmt帮助格式化输入和输出。
-
第2步 – 建立一个名为removeLeadingZeros的方法,接受一个名为str的字符串作为输入。
-
第 3步– 声明变量 leading_zero 为真,输出为空字符串。
-
第 4步 – 使用for循环遍历输入字符串中的每个字符。
-
第 5步 – 在循环中检查 leading_zero 是否为假或者当前字符是否为零。如果这些条件之一为真,则将当前字符添加到结果字符串中,并将 leading_zero 改为 false。
-
第6步 – 循环结束后,提供输出字符串回来。
-
第7步 – 从主函数中调用removeLeadingZeros函数并提供initial_value字符串。把结果放在输出变量中。
-
第8步 – 输出变量将使用fmt.Println()函数打印在控制台,其中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循环来迭代每个字符。这两个程序的输出结果相似。