как убрать завершающий "\ r \ n" из строки - PullRequest
0 голосов
/ 23 января 2019

Я попытался с помощью следующего кода, но в результате получил ту же строку:

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

1 Ответ

0 голосов
/ 23 января 2019

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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...