我嘗試使用以下代碼,但得到的結果是相同的字符串:package mainimport ( "fmt" "strings")func main() { var s = "\b\x02\b\x02\r\n" a := fmt.Sprintf("%q", s) fmt.Println("a:", a) b := strings.TrimRight(a, "\r\n") fmt.Println("b:", b)}
1 回答

收到一只叮咚
TA貢獻1821條經驗 獲得超5個贊
strings.TrimRight()
工作得很好。您的情況下的“問題”是string
存儲在a
變量中的值不以"\r\n"
.
這樣做的原因是因為您使用“引用”它fmt.Sprintf()
,字符串將以 結尾"\\r\\n"
,并且還會添加一個雙引號(即,它以反斜杠結尾,字母r
,另一個反斜杠,字母n
和雙引號)。
如果你不引用你的字符串,那么:
var?s?=?"\b\x02\b\x02\r\n" fmt.Printf("s:?%q\n",?s) b?:=?strings.TrimRight(s,?"\r\n") fmt.Printf("b:?%q\n",?b)
輸出(在Go Playground上嘗試):
s:?"\b\x02\b\x02\r\n" b:?"\b\x02\b\x02"
- 1 回答
- 0 關注
- 166 瀏覽
添加回答
舉報
0/150
提交
取消