截取方法:1、截取單個(gè)字符,語(yǔ)法“string[index]”,其中“string”表示源字符串,“index”表示要獲取的字符下標(biāo);2、截取子串,語(yǔ)法“string[start : end]”,其中“start”表示要截取的第一個(gè)字符所在的索引(截取時(shí)包含該字符),“end”表示要截取的最后一個(gè)字符所在的索引(不包含該字符);3、獲取整個(gè)字符串,語(yǔ)法“string[:]”。
本教程操作環(huán)境:windows7系統(tǒng)、GO 1.18版本、Dell G3電腦。
字符串 是一個(gè)不可改變的字節(jié)序列。字符串可以包含任意的數(shù)據(jù),但是通常是用來(lái)包含可讀的文本。
在開(kāi)發(fā)的過(guò)程中,有時(shí)候我們需要獲取字符串中的單個(gè) 字符,或者獲取字符串中的某一個(gè)片段,這時(shí)候就需要我們能夠?qū)?golang 的字符串進(jìn)行截取。
當(dāng)我們要截取的字符串中包含中文字符串時(shí),首先需要將字符串轉(zhuǎn)換成 rune 數(shù)組。
Go語(yǔ)言截取字符詳解
語(yǔ)法
string[index]
參數(shù)
參數(shù) | 描述 |
---|---|
string | 源字符串。 |
index | 要獲取的字符下標(biāo)。 |
說(shuō)明:
這里的 string 表示要截取的字符串,index 表示索引值。Go 語(yǔ)言規(guī)定,字符串中第一個(gè)字符的索引為 0、第二個(gè)字符的索引為 1,后面各字符依此類(lèi)推。
Go語(yǔ)言截取字符串詳解
定義
Go 語(yǔ)言截取字符串,也叫 Go 語(yǔ)言字符串切片。
語(yǔ)法
string[start : end]
參數(shù)
參數(shù) | 描述 |
---|---|
string | 源字符串。 |
start | 表示要截取的第一個(gè)字符所在的索引(截取時(shí)包含該字符)。如果不指定,默認(rèn)為 0,也就是從字符串的開(kāi)頭截取。 |
end | 表示要截取的最后一個(gè)字符所在的索引(截取時(shí)不包含該字符)。如果不指定,默認(rèn)為字符串的長(zhǎng)度。 |
說(shuō)明
使用了字符串切片的形式,截取了字符串 string 從索引 start 開(kāi)始到索引 end 結(jié)束區(qū)間的字符串。
截取字符串的案例
-
獲取單個(gè)字符
使用下標(biāo)索引的形式,獲取字符串的單個(gè)字符
package main import ( "fmt" ) func main() { //使用下標(biāo)索引的形式,獲取字符串的單個(gè)字符 str := "Hello HaiCoder!" a := str[0] b := str[9] fmt.Println("a =", a, "b =", b) }
首先,我們定義了一個(gè)字符串 變量,賦值為 “Hello HaiCoder!”。接著,我們使用索引,訪(fǎng)問(wèn)該字符串的第一個(gè)元素和第十個(gè)元素,并使用 println 打印獲取的結(jié)果。
-
截取字符串
使用字符串切片的形式,截取字符串
package main import ( "fmt" ) func main() { //使用字符串切片的形式,截取字符串 str := "Hello HaiCoder!" str1 := str[0:4] str2 := str[:8] str3 := str[4:9] fmt.Println("str1 =", str1, "str2 =", str2, "str3 =",str3) }
首先,我們定義了一個(gè)字符串變量,賦值為 “Hello HaiCoder!”。
接著,我們使用字符串切片的形式,截取字符串第一個(gè)元素開(kāi)始到第四個(gè)元素結(jié)束,再次使用字符串切片的形式,截取字符串的第四個(gè)元素開(kāi)始到第九個(gè)元素結(jié)束。
-
獲取整個(gè)字符串
使用字符串切片的形式,可以獲取整個(gè)字符串。
package main import ( "fmt" ) func main() { //使用字符串切片的形式,獲取整個(gè)字符串 str := "Hello HaiCoder!" str1 := str[:] fmt.Println("str1 =", str1) }
首先,我們定義了一個(gè)字符串變量,賦值為 “Hello HaiCoder!”。接著,我們使用字符串切片的形式,截取字符串第一個(gè)元素開(kāi)始到最后一個(gè)元素結(jié)束,因此,這里返回了整個(gè)字符串。
-
截取中文字符串
截取中文字符串時(shí),首先需要將字符串轉(zhuǎn)換成 rune 數(shù)組
package main import ( "fmt" ) func main() { //截取中文字符串時(shí),首先需要將字符串轉(zhuǎn)換成 rune 數(shù)組 str := "歡迎訪(fǎng)問(wèn)php中文網(wǎng),一個(gè)在線(xiàn)學(xué)習(xí)編程的網(wǎng)站。" str1 := str[0:2] strC := []rune(str) str2 := strC[0:2] fmt.Println("str1 =", string(str1), "str2 =",string(str2)) }
我們定義了一個(gè)包含中文的字符串變量 str,接著,我們直接使用索引的形式獲取字符串的第一個(gè)到第二個(gè)子串,輸出了亂碼。
我們使用 強(qiáng)制類(lèi)型轉(zhuǎn)換,將字符串類(lèi)型轉(zhuǎn)成了 rune 數(shù)組,并賦值給變量 strC,接著我們?cè)俅问褂盟饕男问将@取字符串的第一個(gè)到第二個(gè)子串,正確輸出了子串內(nèi)容。
【