Greifen Sie auf die in einem Slice enthaltene Zeichenfolge zu

王林
Freigeben: 2024-02-10 20:00:19
nach vorne
1155 Leute haben es durchsucht

Greifen Sie auf die in einem Slice enthaltene Zeichenfolge zu

php-Editor Xiaoxin ist hier, um vorzustellen, wie man auf die im Slice enthaltene Zeichenfolge zugreift. Unter Slicing versteht man in PHP den Vorgang des Abfangens eines Teils von Zeichen aus einer Zeichenfolge. Durch den Zugriff auf die Zeichenfolgen im Slice können wir die erforderlichen Daten abrufen oder andere Vorgänge ausführen. Bei der Verwendung von Slicing müssen wir die Start- und Endposition angeben, um die entsprechende Zeichenfolge zu erhalten. Die Beherrschung der Verwendung von Slices wird unsere Entwicklungsarbeit erheblich erleichtern. Als nächstes lernen wir im Detail, wie man auf die im Slice enthaltene Zeichenfolge zugreift!

Frageninhalt

Ich mache einige Codierungsübungen, um Go besser zu verstehen. Die gegebene Übung weist mich an, ein Programm zu erstellen, das Benutzereingaben wie folgt akzeptiert:

  • Die erste Zeile gibt an, wie viele Zeichenfolgen als Eingabe in separaten Zeilen bereitgestellt werden
  • Die nächsten n Zeilen sind jeweils eine einzelne Zeichenfolge

Ich möchte die Zeichen ausgeben, die den geraden und ungeraden Indizes jeder Zeichenfolge entsprechen, durch Leerzeichen getrennt und jede Zeichenfolge in einer separaten Zeile.

Eingabebeispiel:

2
foo_bar
fizz_buzz
Nach dem Login kopieren

sollte Folgendes ausgeben:

fobr o_a
fz_uz izbz
Nach dem Login kopieren

Aber der Zugriff auf das String-Slice in meinem Programm gibt einen leeren String zurück:

package main

import (
    "fmt"
)

func main() {
    // read an integer describing how many strings will be input
    var num_strings int
    fmt.scan(&num_strings)

    // create a slice of strings to hold provided strings
    strings := make([]string, num_strings)

    // add provided strings to slice
    for i := 0; i < num_strings; i++ {
        var temp string
        fmt.scan(&temp)
        strings = append(strings, temp)
    }

    // check that strings have been appended
    fmt.println("strings:", strings)

    // check that strings can be accessed
    for i := 0; i < num_strings; i++ {
        fmt.println(i, strings[i]) // only i prints, not strings[i]
    }

    // loop over all strings
    for i := 0; i < num_strings; i++ {

        // if string index is even print the char
        for index, val := range strings[i] {
            if index%2 == 0 {
                fmt.print(val)
            }
        }

        fmt.print(" ")

        // if string index is odd print the char
        for index, val := range strings[i] {
            if index%2 != 0 {
                fmt.print(val)
            }
        }

        // newline for next string
        fmt.print("\n")
    }
}
Nach dem Login kopieren
2
foo_bar
fizz_buzz
Strings: [  foo_bar fizz_buzz]
0 
1
Nach dem Login kopieren

Workaround

Denn wenn Sie make strings einen Slice erstellen, erstellen Sie einen Slice, dessen Kapazität und Länge n beträgt. Wenn Sie also daran anhängen, erhöhen Sie die Länge des Slice:

Ändern Sie diesen Code:

// create a slice of strings to hold provided strings
strings := make([]string, num_strings)

// add provided strings to slice
for i := 0; i < num_strings; i++ {
  var temp string
  fmt.scan(&temp)
  strings = append(strings, temp)
}
Nach dem Login kopieren

An:

// create a slice of strings to hold provided strings
strings := []{}

// add provided strings to slice
for i := 0; i < num_strings; i++ {
  var temp string
  fmt.scan(&temp)
  strings = append(strings, temp)
}
Nach dem Login kopieren

oder

// create a slice of strings to hold provided strings
strings := make([]string, num_strings)

// add provided strings to slice
for i := 0; i < num_strings; i++ {
  var temp string
  fmt.Scan(&temp)
  strings[i] = temp
}
Nach dem Login kopieren

Du solltest dich von deiner besten Seite zeigen.

Das obige ist der detaillierte Inhalt vonGreifen Sie auf die in einem Slice enthaltene Zeichenfolge zu. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!