猿问

如何从字符串中删除尾随的“\r\n”

我尝试使用以下代码,但得到的结果是相同的字符串:


package main


import (

    "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)

}


蛊毒传说
浏览 111回答 1
1回答

收到一只叮咚

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"
随时随地看视频慕课网APP

相关分类

Go
我要回答