Rumah > Artikel > pembangunan bahagian belakang > Cara mengekstrak nombor daripada rentetan dalam bahasa Go
Cara mengekstrak nombor daripada rentetan dalam bahasa Go
Dalam bahasa Go, kita selalunya perlu mengekstrak bahagian nombor daripada rentetan. Sebagai contoh, kita mungkin perlu mengekstrak bahagian berangka rentetan yang mengandungi nombor telefon atau mengekstrak nombor harga daripada rentetan yang mengandungi maklumat harga. Artikel ini akan memperkenalkan beberapa kaedah biasa untuk mencapai matlamat ini.
Kaedah 1: Gunakan ungkapan biasa
Bahasa Go menyediakan perpustakaan ungkapan biasa terbina dalam regexp
, yang boleh kita gunakan untuk mengekstrak bahagian berangka rentetan. Berikut ialah contoh kod: regexp
,我们可以使用它来提取字符串中的数字部分。下面是一个示例代码:
package main import ( "fmt" "regexp" ) func main() { str := "ABC1234DEF5678GHI" re := regexp.MustCompile("[0-9]+") nums := re.FindAllString(str, -1) fmt.Println(nums) }
运行以上代码,输出结果为:[1234 5678]
。
在上面的代码中,我们使用了正则表达式[0-9]+
来匹配字符串中的数字部分。函数FindAllString
返回所有匹配的字符串。第二个参数-1
表示返回所有匹配,而不是只返回第一个匹配。最后,我们打印出了提取出的数字部分。
方法二:使用strconv
包
Go语言的strconv
包提供了一系列用于转换字符串和各种数字类型的函数。我们可以使用这些函数来提取字符串中的数字。
以下是一个示例代码:
package main import ( "fmt" "strconv" ) func main() { str := "ABC1234DEF5678GHI" nums := make([]int, 0) num := "" for _, char := range str { if char >= '0' && char <= '9' { num += string(char) } else if num != "" { n, _ := strconv.Atoi(num) nums = append(nums, n) num = "" } } fmt.Println(nums) }
运行以上代码,输出结果为:[1234 5678]
。
在上面的代码中,我们遍历了字符串中的每个字符,并使用Atoi
函数将提取出的数字字符串转换为整数。最后,我们打印出了提取出的数字部分。
方法三:手动解析字符串
如果字符串中的数字部分具有一定的规律,我们也可以手动解析字符串来提取数字。以下是一个示例代码:
package main import "fmt" func main() { str := "ABC1234DEF5678GHI" nums := make([]int, 0) num := 0 for _, char := range str { if char >= '0' && char <= '9' { num = num*10 + int(char-'0') } else if num != 0 { nums = append(nums, num) num = 0 } } fmt.Println(nums) }
运行以上代码,输出结果为:[1234 5678]
。
在上面的代码中,我们遍历了字符串中的每个字符,并使用当前字符的ASCII码减去字符'0'
rrreee
[1234 5678]
. Dalam kod di atas, kami menggunakan ungkapan biasa [0-9]+
untuk memadankan bahagian angka rentetan. Fungsi FindAllString
mengembalikan semua rentetan yang sepadan. Parameter kedua -1
bermaksud mengembalikan semua padanan dan bukannya padanan pertama sahaja. Akhirnya, kami mencetak bahagian nombor yang diekstrak. 🎜🎜Kaedah 2: Gunakan pakej strconv
🎜🎜Pakej strconv
bahasa Go menyediakan satu siri fungsi untuk menukar rentetan dan pelbagai jenis angka. Kita boleh menggunakan fungsi ini untuk mengekstrak nombor daripada rentetan. 🎜🎜Berikut ialah contoh kod: 🎜rrreee🎜Jalankan kod di atas, hasil output ialah: [1234 5678]
. 🎜🎜Dalam kod di atas, kami mengulangi setiap aksara dalam rentetan dan menggunakan fungsi Atoi
untuk menukar rentetan angka yang diekstrak kepada integer. Akhirnya, kami mencetak bahagian nombor yang diekstrak. 🎜🎜Kaedah 3: Menghuraikan rentetan secara manual🎜🎜Jika bahagian nombor dalam rentetan mempunyai corak tertentu, kita juga boleh menghuraikan rentetan secara manual untuk mengekstrak nombor. Berikut ialah contoh kod: 🎜rrreee🎜Jalankan kod di atas, hasil output ialah: [1234 5678]
. 🎜🎜Dalam kod di atas, kami mengulangi setiap aksara dalam rentetan dan menggunakan kod ASCII aksara semasa tolak kod ASCII aksara Atas ialah kandungan terperinci Cara mengekstrak nombor daripada rentetan dalam bahasa Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!