微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

需要时从字符串中删除双引号

如何解决需要时从字符串中删除双引号

您好,我正在使用 Golang,我必须在需要时从字符串中删除双引号,在没有双引号的情况下,我不必进行此修剪。

例如,当我有 ""HI"" 时,我必须应用修剪,但没有“HI”。我正在使用下一个代码

strings.Trim(stringVal,"\"")

它起作用了,但后来我使用了 strings.EqualFold(stringVal,"HI") 验证,如果我将修剪应用于像“HI”这样的普通字符串,则比较是错误的。

有没有什么办法可以做修剪,只用带双引号的字符串?

谢谢!

解决方法

如果字符串具有不需要的前缀和后缀,则使用切片表达式将它们切掉:

func trim(s string) string {
    if strings.HasPrefix(s,`""`) && strings.HasSuffix(s,`""`) && len(s) > 2 {
        return s[1 : len(s)-1]
    }
    return s
}

示例:

fmt.Println(trim(`"Hi"`))       // prints "Hi"
fmt.Println(trim(`""Hi""`))     // prints "Hi"
fmt.Println(trim(`""""`))       // prints ""
fmt.Println(trim(`""`))         // prints ""
fmt.Println(trim(`"\j\u\n\k"`)) // prints "\j\u\n\k" 

Run the code on the Go Playground

,

这似乎做到了:

package main
import "strconv"

func main() {
   s,e := strconv.Unquote(`"HI"`)
   if e != nil {
      panic(e)
   }
   println(s == "HI")
}

https://golang.org/pkg/strconv#Unquote

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。