在平時的業務中經常需要對字元串進行處理,在此加以記錄,便于小夥伴查閱。
1、去掉字元串首尾空格
代碼如下:
str := " 12 34 "
fmt.Println("原字元串:", str)
fmt.Println("原字元串的長度:", len(str))
s := strings.TrimSpace(str)
fmt.Println("處理之後的字元串:", s)
fmt.Println("處理之後的字元串長度:", len(s))
可以通過 strings.TrimSpace() 方法可以去掉字元串的首尾空格,運作結果如下:

2、去掉字元串首尾的特殊字元
代碼如下:
str1 := "#12#34#"
fmt.Println(str1)
s1 := strings.Trim(str1, "#")
fmt.Println(s1)
用到的方法是:strings.Trim(s string, cutset string)
運作效果如下:
3、去掉字元串中所有的空格
代碼如下:
str:=" 123 456 #789"
fmt.Println("去掉空格之前的字元串長度為:", len(str),)
fmt.Println("去掉空格之前的字元串内容為:", str)
str=strings.ReplaceAll(str," ","")
fmt.Println("去掉空格之後的字元串長度為:", len(str),)
fmt.Println("去掉空格之後的字元串内容為:", str)
可以通過 strings.ReplaceAll(s, old, new string) string 去掉字元串中的所有空格。
運作效果如下:
4、綜合應用
字首表達式轉字尾表達式中對字元的處理:
如: str2 := "89+(123-1) *50" 将數字與字元分隔保持成切片(數組),處理結果如:arr[0]=89, arr[1]=+, arr[2]=( ... arr[8]=50
代碼如下:
package main
import (
"fmt"
"strconv"
"strings"
)
func main() {
str2 := "89+(123-1) *50"
str2 = strings.ReplaceAll(str2, " ", "") //将空格替換掉
arr := strings.Split(str2, "") //将字元串轉換為切片
resArray := make([]string, 0)
res := ""
for _, v := range arr {
if isDigital(v) { //如果連續的數字,依次連接配接
res += v
continue
}
//如果不是數字,且臨時結果不為空,将結果添加到切片中
if res != "" {
resArray = append(resArray, res)
}
res = v //臨時結果儲存符合
resArray = append(resArray, res) //符合添加到切片中
res = "" //清空臨時結果
}
//TODO 這一步很關鍵,判斷臨時結果是否保留未添加到切片中的資料,如果有 将其添加到切片中
if res != "" {
resArray = append(resArray, res)
res=""
}
fmt.Println("處理之後的切片長度:", len(resArray))
for _, v := range resArray {
fmt.Println(v)
}
}
func isDigital(s string) bool {
_, err := strconv.Atoi(s)
if err != nil {
return false
}
return true
}
運作效果如下:
了解更多Go語言知識:https://study.163.com/course/introduction/1210620804.htm