截取字符串(全英文和中英文混合)

package main

import "fmt"

func main() {
   //========== 全英文字符串截取子字符串 ==========//
   letter := "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
   letterSub := string([]byte(letter)[2:8])    // 截取区间为[2, 8)
   fmt.Printf("letterSub = %+v \n", letterSub) // letterSub = CDEFGH

   //========== 中英文混合字符串截取子字符串 ==========//
   str := "零A壹B贰C叁D肆E伍F陆G柒H捌I玖J拾"
   strSub := string([]rune(str)[2:8])    // 截取区间为[2, 8)
   fmt.Printf("strSub = %+v \n", strSub) // strSub = 壹B贰C叁D
}

//========== 总结 ==========//
// 1、rune实际上就是int32的别名。
// 2、使用[]rune截取中英文混合字符串时会忽略汉字及其它Unicode字符的字节数,不按字节数来截取,而按字符数来截取。

Copyright © 2024 码农人生. All Rights Reserved