Go語言中實(shí)現(xiàn)字符串遍歷的兩種方法
首先我們定義一個(gè)字符串,并進(jìn)行相關(guān)循環(huán)輸出
方法1
package main
import (
"fmt"
)
func main() {
var str string = "hello,world"
for i := 0; i < len(str); i++ {
fmt.Printf("%c \n", str[i])
}
}方法2:
package main
import (
"fmt"
)
func main() {
//字符串變量
var str string = "hello,world"
for index, val := range str {
fmt.Printf("index=%d,val=%c \n", index, val)
}一點(diǎn)問題都沒有 劃重點(diǎn)了 但如果字符串出現(xiàn)中文 就會(huì)亂碼 range 沒有,如:
package main
import (
"fmt"
)
func main() {
var str string = "hello,world北京"
for i := 0; i < len(str); i++ {
fmt.Printf("%c \n", str[i])
}為什么呢,因?yàn)閘en的時(shí)候,是根據(jù)字節(jié)進(jìn)行渲染,一個(gè)漢字默認(rèn)3個(gè)字段,索引輸出亂碼了 解決辦法是需要加str轉(zhuǎn)為[]rune切片
package main
import (
"fmt"
)
func main() {
var str string = "hello,world北京"
str2 := []rune(str)
for i := 0; i < len(str2); i++ {
fmt.Printf("index=%d,%c \n", i, str2[i])
}
}到此這篇關(guān)于Go語言中實(shí)現(xiàn)字符串遍歷的兩種方法的文章就介紹到這了,更多相關(guān)Go字符串遍歷方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Go實(shí)現(xiàn)TCP長連接上的請(qǐng)求數(shù)控制
在服務(wù)端開啟長連接的情況下,四層負(fù)載均衡轉(zhuǎn)發(fā)請(qǐng)求時(shí),會(huì)出現(xiàn)服務(wù)端收到的請(qǐng)求qps不均勻的情況或是服務(wù)器無法接受到請(qǐng)求,因此需要服務(wù)端定期主動(dòng)斷開一些長連接,所以本文給大家介紹了基于Go實(shí)現(xiàn)TCP長連接上的請(qǐng)求數(shù)控制,需要的朋友可以參考下2024-05-05
Golang并發(fā)繞不開的重要組件之Goroutine詳解
Goroutine、Channel、Context、Sync都是Golang并發(fā)編程中的幾個(gè)重要組件,這篇文中主要為大家介紹了Goroutine的相關(guān)知識(shí),需要的可以參考一下2023-06-06
GoLang協(xié)程庫libtask學(xué)習(xí)筆記
libtask一個(gè)C語言的協(xié)程庫,是go語言的前身很早期的原型. 測(cè)試機(jī)器是我的mac air 安裝的centos虛擬機(jī)(只有一個(gè)核), 代碼沒有采用任何優(yōu)化,只是使用默認(rèn)配置2022-12-12
go實(shí)現(xiàn)圖片拼接與文字書寫的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于go實(shí)現(xiàn)圖片拼接與文字書寫的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-01-01
go HTTP2 的頭部壓縮算法hpack實(shí)現(xiàn)詳解
這篇文章主要為大家介紹了go HTTP2 的頭部壓縮算法hpack實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10

