Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menukar rentetan kepada tatasusunan bait (bait) dalam golang
Bahasa Go ialah bahasa pengaturcaraan yang baru muncul dan cekap yang digunakan secara meluas dalam pelbagai bidang, terutamanya pembangunan bahagian pelayan. Antaranya, pemprosesan rentetan adalah bahagian penting dalam bahasa Go. Artikel ini akan memperkenalkan cara menukar rentetan kepada tatasusunan bait (bait), iaitu rentetan golang kepada bait.
Dalam bahasa Go, tatasusunan bait (bait) ialah tatasusunan yang terdiri daripada siri integer. Setiap integer sepadan dengan aksara, dan aksara ini diwakili oleh aksara yang sepadan dengan integer dalam jadual kod ASCII. Oleh itu, tatasusunan bait boleh dianggap sebagai tatasusunan yang terdiri daripada pengekodan aksara, yang boleh digunakan dalam pelbagai senario pemprosesan rentetan.
Bahasa Go menyediakan dua kaedah untuk menukar rentetan kepada tatasusunan bait: satu melalui penukaran Jenis dilaksanakan, dan satu lagi dilaksanakan melalui fungsi dalam perpustakaan standard.
(1) Kaedah penukaran jenis
Dalam bahasa Go, rentetan ialah jenis tidak boleh ubah, yang terdiri daripada rentetan aksara. Byte ialah jenis pembolehubah, yang terdiri daripada satu siri integer. Oleh itu, kita boleh menukar jenis rentetan kepada jenis bait melalui penukaran jenis, iaitu:
str := "hello world" bytes := []byte(str)
Dalam kod di atas, kita mula-mula menentukan rentetan str
, dan kemudian menggunakan kaedah []byte(str)
kepada Ia ditukar kepada tatasusunan baitbytes
. Perlu diingatkan bahawa tatasusunan bait ialah jenis boleh ubah dan ia boleh diubah suai.
(2) Kaedah penukaran fungsi
Selain penukaran jenis, bahasa Go juga menyediakan banyak fungsi perpustakaan standard untuk menukar rentetan kepada tatasusunan bait. Fungsi yang paling biasa digunakan ialah fungsi []byte
dan string
, yang masing-masing boleh menukar rentetan kepada tatasusunan bait dan tatasusunan bait kepada rentetan.
str := "hello world" bytes := []byte(str) str2 := string(bytes)
Dalam kod di atas, kita mula-mula menukar rentetan str
menjadi tatasusunan bait bytes
, dan kemudian menukar tatasusunan bait kepada rentetan string(bytes)
melalui str2
. Perlu diingat bahawa kaedah ini hanya berfungsi dengan pengekodan ASCII Jika rentetan mengandungi aksara lain yang dikodkan, aksara bercelaru mungkin muncul.
Menukar rentetan kepada tatasusunan bait ialah operasi asas dalam bahasa Go, ia bukan sahaja boleh digunakan untuk penukaran antara rentetan dan tatasusunan bait, tetapi juga boleh digunakan dalam pelbagai senario pemprosesan rentetan. Mari kita lihat beberapa senario aplikasi biasa:
(1) Pemisahan tatasusunan bait
Tatasusunan bait boleh dianggap sebagai jujukan yang terdiri daripada beberapa integer. Oleh itu, kita boleh membahagi tatasusunan bait kepada berbilang tatasusunan kecil dengan melintasinya:
str := "hello" bytes := []byte(str) chunks := [][]byte{} chunkSize := 2 for i := 0; i < len(bytes); i += chunkSize { end := i + chunkSize if end > len(bytes) { end = len(bytes) } chunk := bytes[i:end] chunks = append(chunks, chunk) } fmt.Println(chunks)
Dalam kod di atas, kami mentakrifkan rentetan str
dan tatasusunan bait bytes
, Kemudian bahagikan tatasusunan bait bytes
menjadi susunan kecil bersaiz 2. Akhir sekali, kami menyimpan semua tatasusunan kecil dalam tatasusunan 2D chunks
dan mencetaknya.
(2) Rentetan mampat
Kita boleh memampatkan rentetan ke dalam tatasusunan bait untuk mencapai kesan mampatan. Prinsip pemampatan adalah untuk menggantikan aksara yang sama dalam rentetan dengan nilai kiraan dan aksara. Contohnya, rentetan aaabcc
boleh dimampatkan menjadi tatasusunan bait []byte{3, 97, 1, 98, 2, 99}
, yang mewakili bahawa terdapat 3
‘a’, 1
‘b’ dan 2
‘c’ dalam rentetan.
str := "aaabcc" outBytes := []byte{} currentChar := str[0] currentCount := 1 for i := 1; i < len(str); i++ { if str[i] == currentChar { currentCount += 1 } else { outBytes = append(outBytes, byte(currentCount), byte(currentChar)) currentChar = str[i] currentCount = 1 } } outBytes = append(outBytes, byte(currentCount), byte(currentChar)) fmt.Println(outBytes)
Dalam kod di atas, kami mentakrifkan rentetan str
dan tatasusunan bait kosong outBytes
, dan kemudian ikuti algoritma pemampatan di atas untuk memampatkan rentetan str
ke dalam tatasusunan baitoutBytes
. Akhir sekali, kami mencetak tatasusunan bait termampat.
Dalam bahasa Go, menukar rentetan kepada tatasusunan bait ialah operasi asas, yang boleh digunakan dalam pelbagai pemprosesan rentetan A senario. Dalam artikel ini, kami memperkenalkan dua kaedah untuk menukar rentetan kepada tatasusunan bait: penukaran jenis dan penukaran fungsi. Selain itu, kami juga memperkenalkan beberapa senario aplikasi tatasusunan bait, seperti pemisahan tatasusunan bait dan pemampatan rentetan. Perlu diingatkan bahawa tatasusunan bait hanya sesuai untuk pengekodan ASCII Jika rentetan mengandungi aksara lain yang dikodkan, aksara bercelaru mungkin muncul.
Atas ialah kandungan terperinci Bagaimana untuk menukar rentetan kepada tatasusunan bait (bait) dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!