Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Gunakan fungsi fmt.Sscanf untuk membaca data berformat daripada rentetan dan menetapkannya kepada berbilang pembolehubah

Gunakan fungsi fmt.Sscanf untuk membaca data berformat daripada rentetan dan menetapkannya kepada berbilang pembolehubah

PHPz
PHPzasal
2023-07-25 19:34:521556semak imbas

Gunakan fungsi fmt.Sscanf untuk membaca data berformat daripada rentetan dan menetapkannya kepada berbilang pembolehubah

Dalam bahasa Go, fungsi fmt.Sscanf boleh membantu kami membaca data daripada rentetan dalam format yang ditentukan dan menetapkannya kepada The read data ditugaskan kepada pembolehubah yang sepadan. Ini memberikan kemudahan yang hebat untuk memproses data rentetan. Artikel ini akan memperkenalkan cara menggunakan fungsi fmt.Sscanf dan menyediakan beberapa kod sampel untuk membantu pembaca memahami dengan lebih baik.

Pertama, mari kita lihat penggunaan asas fungsi fmt.Sscanf. Takrifan fungsi ini adalah seperti berikut:

func Sscanf(str string, format string, a ...interface{}) (n int, err error)

Dalam fungsi ini, str ialah rentetan yang hendak dihuraikan, format ialah format yang ditentukan, dan a ialah pembolehubah yang akan dihantar. Fungsi ini mengembalikan bilangan parameter n berjaya dihuraikan dan ralat ralat semasa proses penghuraian.

Sekarang andaikan kita mempunyai rentetan berikut: "Tom 20 180.12", dari mana kita ingin mengekstrak nama, umur dan ketinggian, dan menetapkannya kepada pembolehubah yang sepadan. Kodnya adalah seperti berikut:

package main

import (
    "fmt"
)

func main() {
    str := "Tom 20 180.12"
    var name string
    var age int
    var height float64

    n, err := fmt.Sscanf(str, "%s %d %f", &name, &age, &height)
    if err != nil {
        fmt.Printf("解析错误:%v
", err)
    }
    fmt.Printf("成功解析的参数数目:%d
", n)
    fmt.Printf("姓名:%s
", name)
    fmt.Printf("年龄:%d
", age)
    fmt.Printf("身高:%.2f
", height)
}

Hasil berjalan adalah seperti berikut:

成功解析的参数数目:3
姓名:Tom
年龄:20
身高:180.12

Dalam kod, kita membaca rentetan pertama ke dalam pembolehubah nama dan integer kedua melalui rentetan format yang ditentukan "%s %d %f" Baca pembolehubah umur dan nombor titik terapung ketiga ke dalam pembolehubah ketinggian. Melalui fungsi fmt.Printf, kita boleh mencetak hasil yang sepadan.

Jika kita ingin mengekstrak data yang lebih kompleks, seperti tarikh, dsb., kita boleh menggunakan beberapa aksara khas. Berikut ialah beberapa aksara format yang biasa digunakan:

  • %d Baca integer
  • %s Baca rentetan
  • %f Baca nombor titik terapung
  • %t Baca nilai Boolean (benar/salah)
  • %v Baca Ambil sebarang jenis bernilai
  • %c Baca satu aksara
  • %q Baca rentetan yang dipetik

Contoh kod:

package main

import (
    "fmt"
)

func main() {
    str := "2022-06-30"
    var year, month, day int

    n, err := fmt.Sscanf(str, "%d-%d-%d", &year, &month, &day)
    if err != nil {
        fmt.Printf("解析错误:%v
", err)
    }
    fmt.Printf("成功解析的参数数目:%d
", n)
    fmt.Printf("年:%d
", year)
    fmt.Printf("月:%d
", month)
    fmt.Printf("日:%d
", day)
}

Hasil larian adalah seperti berikut:

成功解析的参数数目:3
年:2022
月:6
日:30

Dengan menggunakan fungsi Read fmt.Sscanf yang diformatkan, kita boleh dengan mudah membacanya. data daripada rentetan dan berikannya kepada berbilang pembolehubah. Ciri sedemikian sangat berguna untuk bekerja dengan data rentetan dan mengelakkan kerumitan menghuraikan rentetan secara manual. Pada masa yang sama, menggunakan rentetan kawalan format yang ditentukan, kami juga boleh mengekstrak data yang diperlukan dengan lebih fleksibel. Saya harap kod contoh dalam artikel ini dapat membantu pembaca memahami dan menggunakan fungsi ini dengan lebih baik.

Atas ialah kandungan terperinci Gunakan fungsi fmt.Sscanf untuk membaca data berformat daripada rentetan dan menetapkannya kepada berbilang pembolehubah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn