常用的Golang字符串(string)操作



正文



Golang中常用的字符串操作

一、标准库相关的Package

import(
	"strings"
)

二、常用字符串操作

1. 判断是否为空字符串

1.1 使用“==”进行判断
  • 思路:直接判断是否等于""空字符串,由于golang中字符串不能为nil,且为值类型,所以直接与空字符串比较即可。
  • 举例:
	str := ""
	if str == ""{
		fmt.Println("str 为空字符串")
	}
1.2 使用strings包下的Compare方法

根据官方文档的描述,该方法必然比使用“==”进行判断效率高( always faster to use the built-in
// string comparison operators ==, <, >, and so on.)

	str1 := "string1"
	str2 := "string2"
	ret := strings.Compare(str1, str2)
	fmt.Println("ret = ", ret) //输出ret =  -1

	str2 = "string1"
	ret = strings.Compare(str1, str2)
	fmt.Println("ret = ", ret) //输出ret =  0

2. 字符串拼接/字符串组合/字符串加减

字符串拼接其实有很多种方式,仅记录高效率的、使用起来简单的方法

2.1 直接使用“+”或者"+="运算符进行拼接

使用简单,效率不算特别差

	str1 := "string1  +  "
	str2 := "string2"
	fmt.Println(str1 + str2) //输出string1  +  string2
	str1 += "str2"
	fmt.Println(str1)//输出string1  +  str2
2.2 使用buffer.WriteString()

使用相对简单,效率比使用“+”或者"+="运算符高

//要引入"bytes"包
	var buf bytes.Buffer
	buf.WriteString("str1")
	buf.WriteString("+")
	buf.WriteString("stri2")
	
	res := buf.String()
	fmt.Println(res)//输出str1+stri2

3. 字符串和子串

3.1 字符串是否含有指定的子串

使用func Contains(s, substr string) bool函数,在strings包中

3.2 截取子串

4. 中英文问题

4.1 如何处理同时存在中英文的字符串的各种字符串操作
  • 查找中英文字符串中某个中文/英文/中英文子串的Index
    • 对于string,len是按字节返回长度的
    • strings.Index函数返回的
  • 未完待续

三、字符串相关的转换

  • 字符串转浮点数
func ToFloat32(v string, defval float32) float32{
	parseValue, isOk := strconv.ParseFloat(v, 32)
	if isOk != nil {
		return defVal
	}
	return float32(parseValue)//转为float32。根据官方文档,返回值默认是float64类型,可以转为float32,没有说清楚是否传入的参数是32的时候就是按float32的精度处理还是一律按float64的精度处理。我猜是前者——虽然是float64类型,但实际精度只有float32
}

func ToFloat64(v string, defval float64) float64{
	parseValue, isOk := strconv.ParseFloat(v, 64)
	if isOk != nil {
		return defVal
	}
	return parseValue
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值