Z rosettacode.org:
Możesz znaleźć ten rodzaj Funkcja:
func stripChars(str, chr string) string {
return strings.Map(func(r rune) rune {
if strings.IndexRune(chr, r) < 0 {
return r
}
return -1
}, str)
}
Więc, po prostu zastępując chr
przez " "
tutaj powinno wystarczyć, aby załatwić sprawę i usuń spacje.
Pamiętaj, że istnieją inne białe znaki zdefiniowane przez unicode (np. Podział wiersza, nbsp, ...), a możesz również chcieć się ich pozbyć (szczególnie jeśli pracujesz z zewnętrznymi danymi, których nie znasz). t naprawdę mieć kontrolę nad)
Robi się to w ten sposób:
func stripSpaces(str string) string {
return strings.Map(func(r rune) rune {
if unicode.IsSpace(r) {
// if the character is a space, drop it
return -1
}
// else keep it in the string
return r
}, str)
}
Następnie wystarczy zastosować do łańcucha. Mam nadzieję, że to działa, nie testowałem.
@evanmcdonnal Dlaczego wywnioskować, że? Pytam o najlepszy/najszybszy sposób wykonania operacji ogólnej. Nie widzę problemu z moim pytaniem. – Omn
Jeśli próbuję analizować dane wejściowe tak wydajnie, jak to możliwe, zazwyczaj pomaga to wiedzieć, co to jest wejście. Dlaczego miałbym to wywnioskować? Ponieważ pominąłeś odpowiednie informacje. – evanmcdonnal
@evanmcdonnal Ok, cóż, wyjaśniłem, że pytam o dowolny ciąg znaków. – Omn