What is the best way to convert byte array to string?
I need to read [100]byte to transfer a bunch of string data.
Because not all the string is precisely 100 long, the remaining part of the byte array are padded with 0 s.
If I tansfer [100]byte to string by: string(byteArray[:]) , the tailing 0 s are displayed as ^@^@ s.
In C the string will terminate upon 0 , so I wonder what's the best way of smartly transfer byte array to string .
methods that read data into byte slices return the number of bytes read. You should save that number and then use it to create your string. n being the number of bytes read, your code would look like this:
s := string(byteArray[:n])
If for some reason you don't have n , you could use the bytes package to find it, assuming your input doesn't have a null character in it.
n := bytes.Index(byteArray, []byte{0})
Or as icza pointed out, you can use the code below:
n := bytes.IndexByte(byteArray, 0)
关于什么?
s := string(byteArray[:])
Simplistic solution:
str := fmt.Sprintf("%s", byteArray)
I'm not sure how performant this is though.
链接地址: http://www.djcxy.com/p/87212.html上一篇: TypeError:必须是不带空字节的字符串,而不是os.system()中的str
下一篇: 将字节数组转换为字符串的最佳方法是什么?
