我尝试使用以下代码,但得到的结果是相同的字符串: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 关注
- 200 浏览
添加回答
举报
0/150
提交
取消
