Heim > Backend-Entwicklung > Golang > Entfernen Sie Sonderzeichen aus Wörtern

Entfernen Sie Sonderzeichen aus Wörtern

WBOY
Freigeben: 2024-02-06 10:48:08
nach vorne
894 Leute haben es durchsucht

Entfernen Sie Sonderzeichen aus Wörtern

Frageninhalt

Ich schreibe eine Funktion in go, um einzelne Wörter zu bereinigen und dadurch Sonderzeichen am Anfang und Ende jedes Wortes zu entfernen.

Das heißt:

  • .-Hallo,->Hallo
  • "Rücken an Rücken"->Rücken an Rücken

Ich habe das folgende Ergebnis erhalten, indem ich jeden Endbuchstaben einzeln überprüft habe, um zu sehen, ob er zum unicode.letter-Satz gehört. Das funktioniert hervorragend, aber ich habe mich gefragt, ob es einen besseren oder effizienteren Weg gibt, dies zu tun? Ich habe strings.trimleft/right ausprobiert, musste dann aber meinen eigenen Zeichensatz zum Entfernen definieren. Es wäre schön, vordefinierte Sammlungen zu verwenden.

func TrimWord(word []rune) string {
    var prefix int = 0
    var suffix int = len(word)

    for x := 0; x < len(word); x++ {
        if !unicode.IsLetter(word[x]) {
            prefix++
        } else {
            break
        }
    }

    for x := len(word) - 1; x >= 0; x-- {
        if suffix == prefix {
            break
        }
        if !unicode.IsLetter(word[x]) {
            suffix--
        } else {
            break
        }
    }
    return string(word[prefix:suffix])
}
Nach dem Login kopieren


Richtige Antwort


package main

import (
    "fmt"
    "strings"
    "unicode"
)

func trimword(s string) string {
    return strings.trimfunc(s, func(r rune) bool {
        return !unicode.isletter(r)
    })
}

func main() {
    fmt.println(trimword(`.-hello,`))       // -> hello
    fmt.println(trimword(`"back-to-back"`)) // -> back-to-back
}
Nach dem Login kopieren

//m.sbmmt.com/link/55053683268957697aa39fba6f231c68

hello
back-to-back
Nach dem Login kopieren

Paketzeichenfolge

func TrimFunc(s string, f func(rune) bool) string
Nach dem Login kopieren

trimfunc gibt ein Segment der Zeichenfolge s zurück, wobei alle führenden und nachfolgenden Unicode-Codepunkte c, die f(c) erfüllen, entfernt wurden.

Das obige ist der detaillierte Inhalt vonEntfernen Sie Sonderzeichen aus Wörtern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage