【问题标题】:Golang: Strings Trim FunctionGolang:字符串修剪功能
【发布时间】:2016-12-11 08:16:43
【问题描述】:

我在 Golang 中使用 strings.Trim() 来修剪前五个字符。
但是,最后一个“a”总是消失了。
为什么呢?

例子:

sentence := "Kab. Kolaka Utara"
result := strings.Trim(sentence,sentence[:4])
fmt.Println(result)

结果:Kolaka Utar
我预计:Kolaka Utara

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

感谢您的帮助。

【问题讨论】:

  • 您的预期输出是什么,例如:“Kolaka Utara”?
  • @Amd 是的,我期待 Kolaka Utara

标签: string go trim


【解决方案1】:

由于字符串是在 Golang 中针对 单字节 Unicode 代码点进行 UTF-8 编码的,因此您可以使用 result := sentence[5:]
像这个工作示例代码:

package main

import "fmt"

func main() {
    sentence := "Kab. Kolaka Utara"
    result := sentence[5:]
    fmt.Println(result)
}

输出:

Kolaka Utara

对于像"µµµµ Kolaka Utara" 这样的多字节Unicode 代码点,您可以使用string([]rune(sentence)[5:]),就像这个工作示例代码:

package main

import "fmt"

func main() {
    sentence := "µµµµ Kolaka Utara"
    result := string([]rune(sentence)[5:])
    fmt.Println(result)
}

输出:

Kolaka Utara

并查看文档:

func Trim(s string, cutset string) string

Trim 返回字符串 s 的切片,其中包含所有前导和尾随 已删除切割集中包含的 Unicode 代码点。

看看:Extracting substrings in Go

【讨论】:

    【解决方案2】:

    如果您确定要修剪多少个字符。使用这种方法。

    func main() {
        sentence := "Kab. Kolaka Utara"
        fmt.Println(sentence)
        fmt.Println(sentence[5:len(sentence)])
    
    }
    

    输出:

     Value :  Kab. Kolaka Utara
     Trimed : Kolaka Utara
    

    【讨论】:

      【解决方案3】:

      你应该知道“trim”在编程中的确切含义:从开头和结尾删除一些字符。

      而在Golang的strings.Trim中,第二个参数是一组字符。

      Trim 将删除集合中包含的所有前导和尾随字符。

      在你的例子中:

      集合是

      {"K", "a", ".", "b"};
      

      对于“Kab. Kolaka Utara”,Trim 将删除“Kab”。从头开始,从结尾“a”。

      因此,您得到的实际字符串是“Kolaka Utar”,而不是没有前导空格的“Kolaka Utar”。

      如果你只想“修剪”前五个字符,你应该使用这个语句:

      sentence = sentence[5:].
      

      【讨论】:

        【解决方案4】:

        如果要修剪前 5 个字节,请使用:

        result := sentence[5:]
        

        playground example

        【讨论】:

        • 好的。谢谢你:)
        【解决方案5】:

        Trim 返回字符串 s 的切片,其中包含在 cutset 中的所有前导和尾随 Unicode 代码点都已删除。

        sentence[:4] 是“Kab”。 Trim 将删除所有前导和尾随“k”、“a”、“b”、“。”

        https://golang.org/pkg/strings/#Trim

        【讨论】:

          猜你喜欢
          • 2014-08-16
          • 1970-01-01
          • 2017-04-07
          • 2013-02-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多