Rumah >pembangunan bahagian belakang >Golang >Akses rentetan yang terkandung dalam kepingan

Akses rentetan yang terkandung dalam kepingan

王林
王林ke hadapan
2024-02-10 20:00:191190semak imbas

Akses rentetan yang terkandung dalam kepingan

editor php Xiaoxin di sini untuk memperkenalkan cara mengakses rentetan yang terkandung dalam kepingan. Dalam PHP, penghirisan merujuk kepada operasi memintas sebahagian daripada aksara daripada rentetan. Dengan mengakses rentetan dalam kepingan, kami boleh mendapatkan data yang diperlukan atau melakukan operasi lain. Apabila menggunakan penghirisan, kita perlu menentukan kedudukan permulaan dan kedudukan penamat untuk mendapatkan rentetan yang sepadan. Menguasai penggunaan kepingan akan membawa kemudahan besar kepada kerja pembangunan kami. Seterusnya, mari belajar secara terperinci cara mengakses rentetan yang terkandung dalam kepingan!

Kandungan soalan

Saya sedang melakukan beberapa latihan pengekodan untuk memahami dengan lebih baik. Latihan yang diberikan mengarahkan saya untuk mencipta program yang menerima input pengguna seperti berikut:

  • Baris pertama menentukan bilangan rentetan yang akan disediakan sebagai input pada baris berasingan
  • N baris seterusnya adalah setiap satu rentetan

Saya ingin mengeluarkan aksara yang sepadan dengan indeks genap dan ganjil bagi setiap rentetan, dipisahkan oleh ruang dan dengan setiap rentetan pada baris yang berasingan.

Contoh input:

2
foo_bar
fizz_buzz

seharusnya mengeluarkan:

fobr o_a
fz_uz izbz

Tetapi mengakses kepingan rentetan dalam program saya mengembalikan rentetan kosong:

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")
    }
}
2
foo_bar
fizz_buzz
Strings: [  foo_bar fizz_buzz]
0 
1

Penyelesaian

Kerana apabila anda make strings menghiris, anda sedang mencipta kepingan dengan kapasiti dan panjang daripada n. Oleh itu, apabila anda menambahnya, anda menambah panjang kepingan:

Tukar kod ini:

// 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)
}

Kepada:

// 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)
}

atau

// 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
}

Anda harus berada pada tingkah laku terbaik anda.

Atas ialah kandungan terperinci Akses rentetan yang terkandung dalam kepingan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam