目的:刪除字符串中多余的空格(含tab),有多個(gè)空格時(shí),僅保留一個(gè)空格,同時(shí)將字符串中的tab換為空格
方法:
func DeleteExtraSpace(s string) string {
//刪除字符串中的多余空格,有多個(gè)空格時(shí),僅保留一個(gè)空格
s1 := strings.Replace(s, " ", " ", -1) //替換tab為空格
regstr := "\\s{2,}" //兩個(gè)及兩個(gè)以上空格的正則表達(dá)式
reg, _ := regexp.Compile(regstr) //編譯正則表達(dá)式
s2 := make([]byte, len(s1)) //定義字符數(shù)組切片
copy(s2, s1) //將字符串復(fù)制到切片
spc_index := reg.FindStringIndex(string(s2)) //在字符串中搜索
for len(spc_index) > 0 { //找到適配項(xiàng)
s2 = append(s2[:spc_index[0]+1], s2[spc_index[1]:]...) //刪除多余空格
spc_index = reg.FindStringIndex(string(s2)) //繼續(xù)在字符串中搜索
}
return string(s2)
}