Heim  >  Artikel  >  Backend-Entwicklung  >  So ermitteln Sie die Länge einer Zeichenfolge in der Go-Sprache

So ermitteln Sie die Länge einer Zeichenfolge in der Go-Sprache

藏色散人
藏色散人Original
2020-12-29 16:33:225813Durchsuche

So ermitteln Sie die Länge eines Strings in der Go-Sprache: 1. Verwenden Sie die Funktion „len()“, um die ASCII-Stringlänge zu berechnen. 2. Verwenden Sie die Funktion „utf8.RuneCountInString()“, um die Unicode-Stringlänge zu berechnen.

So ermitteln Sie die Länge einer Zeichenfolge in der Go-Sprache

Die Betriebsumgebung dieses Artikels: Windows 7-System, Go-Version 1.11.2, Dell G3-Computer.

Empfohlenes Tutorial: „go language

Go language berechnet die Stringlänge – len() und RuneCountInString()

Die in Go language integrierte Funktion len() kann verwendet werden, um Slices zu erhalten Länge von Strings, Kanälen usw. Der folgende Code kann len() verwenden, um die Länge einer Zeichenfolge abzurufen.

tip1 := "genji is a ninja"
fmt.Println(len(tip1))
tip2 := "忍者"
fmt.Println(len(tip2))

Die Programmausgabe lautet wie folgt:

16
6

len() Der Rückgabewert der Funktion ist vom Typ int, der die Anzahl der ASCII-Zeichen oder die Bytelänge der Zeichenfolge darstellt.

Die 16 in der ersten Zeile der Ausgabe gibt an, dass die Anzahl der Zeichen in tip1 16 beträgt.

Die 6 in der zweiten Zeile der Ausgabe gibt das Zeichenformat von tip2 an, d. h. die Anzahl der Zeichen für „Ninja“ beträgt 6. Gemäß Brauch sollte die Anzahl der Zeichen für „Ninja“ jedoch 2 betragen.

Der Unterschied besteht darin, dass alle Go-Sprachzeichenfolgen im UTF-8-Format gespeichert werden und jedes chinesische Zeichen 3 Bytes belegt. Verwenden Sie daher len(), um die 6 Bytes zu erhalten, die den beiden chinesischen Zeichen entsprechen.

Wenn Sie auf der Grundlage der üblichen Zeichenanzahl berechnen möchten, müssen Sie die Funktion RuneCountInString() des UTF-8-Pakets in der Go-Sprache verwenden, um die Anzahl der Uncode-Zeichen zu zählen.

Der folgende Code zeigt, wie die Anzahl der Zeichen in UTF-8 berechnet wird.

fmt.Println(utf8.RuneCountInString("忍者"))
fmt.Println(utf8.RuneCountInString("龙忍出鞘,fight!"))

Die Programmausgabe lautet wie folgt:

2
11

Bei allgemeinen Spielen müssen Sie beim Anmelden Ihren Namen eingeben, und der Name hat im Allgemeinen eine Längenbeschränkung. Da Chinesen es gewohnt sind, Chinesisch als Namen zu verwenden, ist es notwendig, die Länge der Zeichenfolge im UTF-8-Format zu ermitteln.

Zusammenfassung

Die Länge der ASCII-Zeichenfolge verwendet die Funktion len().

Unicode-Stringlänge verwendet die Funktion utf8.RuneCountInString().

Das obige ist der detaillierte Inhalt vonSo ermitteln Sie die Länge einer Zeichenfolge in der Go-Sprache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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