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