Teilen Sie Textdateien in Slices auf und vergleichen Sie sie
Ich schreibe ein Programm, um Benutzernamen Zeile für Zeile in einer TXT-Datei abzurufen und zu überprüfen, ob der Benutzername darin enthalten ist. Dann habe ich ein Slice erstellt, die Datei in einen String konvertiert und an den String-Slice angehängt. Ich versuche jetzt, das Slice mithilfe einer for-Schleife zu durchlaufen, um den Benutzernamen in der Datei zu finden und ihn mit einer anderen Zeichenfolgenvariablen zu vergleichen, die den Benutzernamen enthält. Ich möchte überprüfen, ob es im Slice ist. Wie geht das am besten? Ich habe versucht, eine segmentierte for-Schleife zu verwenden, um die Elemente im Bereich mit der Variablen für den Benutzernamen zu vergleichen, den ich überprüfen wollte, aber es hat nicht funktioniert. Mit anderen Worten, ich möchte herausfinden, wie ich am besten eine TXT-Datei mit einer von oben nach unten hinzugefügten Liste von Benutzernamen erhalten kann, mein Programm aus dieser Textdatei lesen (in einer Schleife) veranlassen und sie mit einem vorgegebenen Element vergleichen kann ( Benutzername) in einer String-Variablen mit dem Inhalt einer Textdatei verknüpft und ermittelt, ob dieser übereinstimmt.
Benutzername (String-Variable) == Benutzername (in Textdatei)
* Die Variable „Benutzername“ basiert ebenfalls auf den Eingaben des Programmbenutzers. Daher versuche ich letztendlich zu überprüfen, ob das Programm überprüft, ob der Benutzername in der Datei enthalten ist, wenn er seinen Benutzernamen eingibt. Danke.
Beispiel für Code, den ich ausprobiert habe:
var readSystemCtl []string readSystemCtl = append(readSystemCtl, string(file)) for _, username := range of readSystemCtl { if username == input { //Continue program if true break }else { //Do something else } }
Hinweis: string(file) ist die Textdatei, die ich lesen möchte; input ist die String-Variable, die der Benutzer für seinen im Programm vorgegebenen Benutzernamen eingibt.
Richtige Antwort
Als Go-Programmierer übersetze ich Ihre allgemeinen Anwendungsanforderungen schnell in Go-Programme. Dann habe ich es mit Ihrem Code verglichen. Ich verstehe nicht, warum Sie go für die lineare Suche nach Slices verwenden. Warum nicht Go-Maps mit wahlfreiem Zugriff verwenden?
Entfernen Sie Leerzeichen (strings.trimspace
),并且为了不区分大小写,将其转换为小写 (strings.tolower
), bevor Sie Benutzernamen auf Gleichheit vergleichen.
users.go
package main import ( "bufio" "fmt" "io" "os" "strings" ) func loadusers(r io.reader) (map[string]bool, error) { users := make(map[string]bool) scnr := bufio.newscanner(r) for scnr.scan() { user := strings.trimspace(scnr.text()) if len(user) > 0 { user = strings.tolower(user) users[user] = true } } if err := scnr.err(); err != nil { return nil, err } return users, nil } func loadusersfile(name string) (map[string]bool, error) { f, err := os.open(name) if err != nil { return nil, err } defer f.close() users, err := loadusers(f) if err != nil { return nil, err } return users, nil } func isuser(users map[string]bool, user string) bool { user = strings.trimspace(user) user = strings.tolower(user) return users[user] } func main() { users, err := loadusersfile("users.txt") if err != nil { fmt.fprintln(os.stderr, err) os.exit(1) } scnr := bufio.newscanner(os.stdin) for scnr.scan() { user := scnr.text() fmt.print("user: ", user) if isuser(users, user) { fmt.println(" found") } else { fmt.println(" not found") } } if err := scnr.err(); err != nil { fmt.fprintln(os.stderr, err) os.exit(1) } }
$ cat users.txt username1 Username2 UserName3 $ go build users.go $ ./users User Name X User: User Name X not found username3 User: username3 found $
Das obige ist der detaillierte Inhalt vonTeilen Sie Textdateien in Slices auf und vergleichen Sie sie. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



OpenSSL bietet als Open -Source -Bibliothek, die in der sicheren Kommunikation weit verbreitet sind, Verschlüsselungsalgorithmen, Tasten und Zertifikatverwaltungsfunktionen. In seiner historischen Version sind jedoch einige Sicherheitslücken bekannt, von denen einige äußerst schädlich sind. Dieser Artikel konzentriert sich auf gemeinsame Schwachstellen und Antwortmaßnahmen für OpenSSL in Debian -Systemen. DebianopensL Bekannte Schwachstellen: OpenSSL hat mehrere schwerwiegende Schwachstellen erlebt, wie z. Ein Angreifer kann diese Sicherheitsanfälligkeit für nicht autorisierte Lesen sensibler Informationen auf dem Server verwenden, einschließlich Verschlüsselungsschlüssel usw.

In dem Artikel wird erläutert, wie das PPROF -Tool zur Analyse der GO -Leistung verwendet wird, einschließlich der Aktivierung des Profils, des Sammelns von Daten und der Identifizierung gängiger Engpässe wie CPU- und Speicherprobleme.Character Count: 159

In dem Artikel werden Schreiben von Unit -Tests in GO erörtert, die Best Practices, Spottechniken und Tools für ein effizientes Testmanagement abdecken.

In der Bibliothek, die für den Betrieb der Schwimmpunktnummer in der GO-Sprache verwendet wird, wird die Genauigkeit sichergestellt, wie die Genauigkeit ...

Das Problem der Warteschlange Threading In Go Crawler Colly untersucht das Problem der Verwendung der Colly Crawler Library in Go -Sprache. Entwickler stoßen häufig auf Probleme mit Threads und Anfordern von Warteschlangen. � ...

In dem Artikel werden mit Tabellensteuerungstests in GO eine Methode mit einer Tabelle mit Testfällen getestet, um Funktionen mit mehreren Eingaben und Ergebnissen zu testen. Es zeigt Vorteile wie eine verbesserte Lesbarkeit, verringerte Vervielfältigung, Skalierbarkeit, Konsistenz und a

In dem Artikel werden die Verwaltungs -Go -Modulabhängigkeiten über Go.mod erörtert, die Spezifikationen, Aktualisierungen und Konfliktlösung abdecken. Es betont Best Practices wie semantische Versioning und reguläre Updates.

In dem Artikel wird das Reflect -Paket von Go, das zur Laufzeitmanipulation von Code verwendet wird, von Vorteil für die Serialisierung, generische Programmierung und vieles mehr. Es warnt vor Leistungskosten wie langsamere Ausführung und höherer Speichergebrauch, beraten die vernünftige Verwendung und am besten am besten
