为了账号安全,请及时绑定邮箱和手机立即绑定

在 go 中创建子字符串可创建一种新的符号

在 go 中创建子字符串可创建一种新的符号

Go
米琪卡哇伊 2022-09-05 10:52:01
我正在比较字符串,有以下几点:请注意,NEW 前面的 “是不同的。现在,当像这样调用我的函数时:my_func(a[18:], b[18:])结果字符串令人惊讶:我该怎么做才能把这个奇怪的符号剪掉,为什么它表现得像这样?
查看完整描述

2 回答

?
森栏

TA贡献1810条经验 获得超5个赞

因为这种类型的引号是多字节字符,并且您正在将字符串拆分在字符的中间。您可以做的是转换为,然后转换回来:[]rune


https://play.golang.org/p/pw42sEwRTZd


s := "H界llo"

fmt.Println(s[1:3])                 // ��

fmt.Println(string([]rune(s)[1:3])) // 界l


查看完整回答
反对 回复 2022-09-05
?
慕的地10843

TA贡献1785条经验 获得超8个赞

另一个选项是软件包:utf8string


package main

import "golang.org/x/exp/utf8string"


func main() {

   s := utf8string.NewString(` 'Not Available') “NEW CREDIT" FROM customers;`)

   t := s.Slice(18, s.RuneCount())

   println(t == `“NEW CREDIT" FROM customers;`)

}

https://pkg.go.dev/golang.org/x/exp/utf8string


查看完整回答
反对 回复 2022-09-05
  • 2 回答
  • 0 关注
  • 82 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信