Как обрезать начальные и конечные пробелы строки?

176

Какой эффективный способ обрезать начальные и конечные пробелы строковой переменной в Go?

Алекс Мэтью
источник
4
Онлайновая документация точно описывает, что происходит, и имеет работоспособные и редактируемые примеры!
Volker
Я хотел бы, чтобы это можно было найти по "Ruby strip golang"
kangkyu

Ответы:

267

Например,

package main

import (
    "fmt"
    "strings"
)

func main() {
    s := "\t Hello, World\n "
    fmt.Printf("%d %q\n", len(s), s)
    t := strings.TrimSpace(s)
    fmt.Printf("%d %q\n", len(t), t)
}

Вывод:

16 "\t Hello, World\n "
12 "Hello, World"
peterSO
источник
Попробуйте "\ t Hello, \ nWorld \ n" не работает :( ... как удалить
символ
8
Он по-прежнему обрезает начало и конец, но не удаляет новую строку в середине, потому что это не то, что делает обрезка. Вы должны будете использовать strings.Replace или что-то подобное, чтобы удалить символ новой строки в середине строки.
Густаво Поскидонио
34

Есть множество функций для обрезки строк в го.

Смотрите их там: отделка

Вот пример, адаптированный из документации, удаляющий начальные и конечные пробелы:

fmt.Printf("[%q]", strings.Trim(" Achtung  ", " "))
Денис Сегюре
источник
2
Как обрезать \ t \ n? fmt.Printf("%q", strings.Trim("\t\t\t\t", `! \t`))Это не работает
Tom10271
5
@aokaddaoc ты пробовал strings.TrimSpace(str)?
Ахмед Т. Али
9
package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.TrimSpace(" \t\n Hello, Gophers \n\t\r\n"))
}

Вывод: привет, суслики

И просто перейдите по этой ссылке - https://golang.org/pkg/strings/#TrimSpace

Nikta Jn
источник
7

Для обрезки вашей строки в пакете Go есть «строка» TrimSpace(), Trim()которая обрезает начальные и конечные пробелы.

Проверьте документацию для получения дополнительной информации.

Кабир Шейх
источник
0

Как уже упоминал @Kabeer, вы можете использовать TrimSpace, и вот пример из документации golang:

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.TrimSpace(" \t\n Hello, Gophers \n\t\r\n"))
}
Нантини Муниапан
источник
0

У @peterSO правильный ответ. Я добавляю больше примеров здесь:

package main

import (
    "fmt"
    strings "strings"
)

func main() { 
    test := "\t pdftk 2.0.2  \n"
    result := strings.TrimSpace(test)
    fmt.Printf("Length of %q is %d\n", test, len(test))
    fmt.Printf("Length of %q is %d\n\n", result, len(result))

    test = "\n\r pdftk 2.0.2 \n\r"
    result = strings.TrimSpace(test)
    fmt.Printf("Length of %q is %d\n", test, len(test))
    fmt.Printf("Length of %q is %d\n\n", result, len(result))

    test = "\n\r\n\r pdftk 2.0.2 \n\r\n\r"
    result = strings.TrimSpace(test)
    fmt.Printf("Length of %q is %d\n", test, len(test))
    fmt.Printf("Length of %q is %d\n\n", result, len(result))

    test = "\r pdftk 2.0.2 \r"
    result = strings.TrimSpace(test)
    fmt.Printf("Length of %q is %d\n", test, len(test))
    fmt.Printf("Length of %q is %d\n\n", result, len(result))   
}

Вы можете найти это и на детской площадке Go lang .

S.Mishra
источник