go語言學(xué)習(xí)(7)--String

字符串長度

s := "神奇大葉子" // UTF-8
fmt.Println(len(s))

// 15

熟悉python的朋友應(yīng)該覺得結(jié)果就是5,為什么go里是15呢,因為一個中文字符占3個字節(jié)
我們來遍歷一下

for _, b := range []byte(s) {
    fmt.Printf("%X ", b) //  16進(jìn)制
}
// E7 A5 9E E5 A5 87 E5 A4 A7 E5 8F B6 E5 AD 90 

for i, ch := range s {
    fmt.Printf("(%d %X)", i, ch)
}
// (0 795E)(3 5947)(6 5927)(9 53F6)(12 5B50)

可見一個中文字符確實(shí)是3個字節(jié),那我就想知道我這句話是幾個字呢,不想知道字節(jié),變量那章講過 rune就是go里的 char
fmt.Println("Rune count:", utf8.RuneCountInString(s))

遍歷

bytes := []byte(s)
for len(bytes) > 0 {
    ch, size := utf8.DecodeRune(bytes)
    bytes = bytes[size:]
    fmt.Printf("%c ", ch) // 字符
}

這樣是不是略顯麻煩,通常要遍歷字符串,看下面

for i, ch := range []rune(s) {
    fmt.Printf("(%d %c) ", i, ch)
}
// (0 神) (1 奇) (2 大) (3 葉) (4 子) 

utf8還有很多方法,可以自行嘗試
還有 stings 包包含了很多字符串操作的方法,千萬不要傻兮兮的自己實(shí)現(xiàn)

總結(jié)

  • 使用 range 遍歷pos,rune 對
  • 使用 utf8.RuneCountInString 獲得字符數(shù)
  • len 獲取的是字節(jié)數(shù)
  • 使用[]byte獲得字節(jié)
  • strings包包含很多字符串的操作
    • Fields,Split,Join
    • Contains,Index
    • ToLower,ToUpper
    • Trim,TrimRight,TrimLeft

上述代碼均已上傳至 github, 歡迎 star
https://github.com/yejunyu/golearn


image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末熊镣,一起剝皮案震驚了整個濱河市茅姜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蒂秘,老刑警劉巖孤紧,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件汁讼,死亡現(xiàn)場離奇詭異玄货,居然都是意外死亡知给,警方通過查閱死者的電腦和手機(jī)瓤帚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門描姚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人戈次,你說我怎么就攤上這事轩勘。” “怎么了怯邪?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵绊寻,是天一觀的道長。 經(jīng)常有香客問我悬秉,道長澄步,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任和泌,我火速辦了婚禮村缸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘武氓。我一直安慰自己梯皿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布县恕。 她就那樣靜靜地躺著东羹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪忠烛。 梳的紋絲不亂的頭發(fā)上属提,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機(jī)與錄音况木,去河邊找鬼垒拢。 笑死,一個胖子當(dāng)著我的面吹牛火惊,可吹牛的內(nèi)容都是我干的求类。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼屹耐,長吁一口氣:“原來是場噩夢啊……” “哼尸疆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起惶岭,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤寿弱,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后按灶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體症革,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年鸯旁,在試婚紗的時候發(fā)現(xiàn)自己被綠了噪矛。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片量蕊。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖艇挨,靈堂內(nèi)的尸體忽然破棺而出残炮,到底是詐尸還是另有隱情,我是刑警寧澤缩滨,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布势就,位于F島的核電站,受9級特大地震影響脉漏,放射性物質(zhì)發(fā)生泄漏苞冯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一鸠删、第九天 我趴在偏房一處隱蔽的房頂上張望抱完。 院中可真熱鬧,春花似錦刃泡、人聲如沸巧娱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽禁添。三九已至,卻和暖如春桨踪,著一層夾襖步出監(jiān)牢的瞬間老翘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工锻离, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留铺峭,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓汽纠,卻偏偏與公主長得像卫键,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子虱朵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 本文翻譯自Rob Pike的文章《Strings, bytes, runes and characters in ...
    大蟒傳奇閱讀 9,772評論 0 12
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理莉炉,服務(wù)發(fā)現(xiàn),斷路器碴犬,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • Swift學(xué)習(xí)有問必答群 : 313838956 ( mac版QQ有權(quán)限要求, 入群只能通過手機(jī)版 QQ申請...
    Guards翻譯組閱讀 6,586評論 9 13
  • 我覺得我有很多困惑需要解答絮宁。但尋覓中,幾乎要被“無法找到授業(yè)解惑的恩師”而導(dǎo)致的焦慮大敗服协。焦灼的心绍昂,煎熬后才知恩師...
    EDISONYI閱讀 213評論 0 0
  • 在遙遠(yuǎn)的從前窘游,茂密的大森林里卖陵,小動物們幸福快樂地生活在一起张峰。這天,一只母狐貍和一只公狼結(jié)婚了棒旗,他們的三年愛情長跑故...
    更好時代閱讀 837評論 0 1