Go语言字符串处理

在平时的业务中经常需要对字符串进行处理,在此加以记录,便于小伙伴查阅。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值