教我自己Go我正在構建一個簡單的服務器,它需要一些輸入,做一些處理並將輸出發送回客戶端(包括原始輸入)。從字節中刪除NUL字符
輸入的長度可以從5-13個字符+ endlines以及客戶端發送的任何其他guff變化。
將輸入讀入字節數組,然後轉換爲字符串進行一些處理。另一個字符串被追加到這個字符串中,整個事物被轉換回一個字節數組,並被髮送回客戶端。
問題是輸入是用一堆NUL字符填充的,我不知道如何擺脫它們。
所以我可以循環訪問數組,並且當我來到一個nul字符時,請注意長度(n),創建一個新長度的字節數組,並將前n個字符複製到新的字節數組中並使用那。這是最好的方式,還是有什麼讓我更容易?
一些精簡代碼:
data := make([]byte, 16)
c.Read(data)
s := strings.Replace(string(data[:]), "an", "", -1)
s = strings.Replace(s, "\r", "", -1)
s += "some other string"
response := []byte(s)
c.Write(response)
c.close()
而且,如果我做任何事情都要明顯的愚蠢這將是很好的瞭解。
謝謝。我想我已經嘗試過了,但似乎並不適用於\ 0,我認爲這是我的問題。 – 2013-03-15 13:54:48
@Knyght:是的,因爲'\ 0'是非法的轉義序列(檢查[specs](http://golang.org/ref/spec#octal_byte_value))。一個必須使用'\ 000':http://play.golang.org/p/KP8WLyfUB- – zzzz 2013-03-15 14:05:15
@zzzz - 我有一個Dim Buffer()As Byte。因此對於此 緩衝區= bytes.Trim(緩衝區,「\ x00」) 字節在VB.net中顯示錯誤 – picnic4u 2015-01-03 15:34:44