[英]Convert a byte to a string in Go
我正在嘗試做這樣的事情:
bytes := [4]byte{1,2,3,4}
str := convert(bytes)
//str == "1,2,3,4"
我搜索了很多,真的不知道該怎么做。
我知道這行不通:
str = string(bytes[:])
不是實現它的最有效方法,但您可以簡單地編寫:
func convert( b []byte ) string {
s := make([]string,len(b))
for i := range b {
s[i] = strconv.Itoa(int(b[i]))
}
return strings.Join(s,",")
}
被稱為:
bytes := [4]byte{1,2,3,4}
str := convert(bytes[:])
如果您不受確切表示的約束,那么您可以使用fmt.Sprint
:
fmt.Sprint(bytes) // [1 2 3 4]
另一方面,如果您想要確切的逗號樣式,則必須使用循環和strconv.Itoa
自己構建它。
類似於 inf 的建議,但允許使用逗號:
fmt.Sprintf("%d,%d,%d,%d", bytes[0], bytes[1], bytes[2], bytes[3])
使用strings.Builder
將是最有效的方式來做同樣的事情..
package main
import (
"fmt"
"strings"
)
func convert( bytes []byte) string {
var str strings.Builder
for _, b := range bytes {
fmt.Fprintf(&str, "%d,", int(b))
}
return str.String()[:str.Len() - 1]
}
func main(){
s := [4]byte{1,2,3,4}
fmt.Println(convert(s[:]))
}
=> 1,2,3,4
func convert( b []byte ) string {
s := make([]string,len(b))
for i := range b {
s[i] = string(b[i])
}
return strings.Join(s,",")
}
hex.EncodeToString(input)
可能適合你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.