go语言实现将一串string的数字转换成byte
时间: 2024-09-27 11:17:18 浏览: 36
Go-此工具用于将16进制字符串转换成10进制byte数组
在Go语言中,将一串字符串数字转换为`byte`切片(数组)可以直接通过解析字符串并限制结果的长度,因为`byte`类型的整数范围恰好对应于8位无符号二进制数。以下是一个简单的示例:
```go
package main
import (
"strconv"
)
func strToByteSlice(s string) []byte {
result := make([]byte, 0, len(s)) // 创建足够大的byte切片
for _, digit := range s {
num, err := strconv.Atoi(string(digit))
if err != nil {
// 非数字字符,跳过
continue
}
// 检查是否需要扩大切片
if len(result)+1 > cap(result) {
newCap := len(result) * 2
result = append(result, 0)
result = result[:newCap]
}
result[len(result)] = byte(num) // 将数字转换为byte并追加到切片末尾
}
return result
}
func main() {
input := "12345"
convertedBytes := strToByteSlice(input)
// 输出转换后的byte切片
println("Converted bytes:", convertedBytes)
}
```
在这个例子中,我们遍历字符串中的每个字符,用`strconv.Atoi`转换成整数,然后添加到`result`切片中。如果遇到非数字字符,会忽略并继续下一次迭代。
阅读全文