Як обрізати провідні та кінцеві пробіли рядка?


176

Який ефективний спосіб обрізати провідні та кінцеві білі проміжки змінної рядка в Go?


4
Інтернет-документація описує, що саме відбувається, і має приклади, які можна застосувати та редагувати!
Волкер

Я хотів би, щоб це можна було шукати в "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"

Спробуйте "\ t Привіт, \ nсвіт \ n" не працює :( ... як видалити новий рядок?
KingRider

8
Він все ще обрізає початок і кінець, але не видалить новий рядок посередині, тому що це не те, що обрізка робить. Вам потрібно буде використовувати strings.Replace або щось подібне, щоб видалити новий рядок посередині рядка.
Gustavo Poscidonio

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)?
Ахмед Т. Алі


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 .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.