String Functions {.en}

字符串函数 {.zh}

::: {.en} The standard library’s strings package provides many useful string-related functions. Here are some examples to give you a sense of the package. :::

::: {.zh}

标准库的strings包提供了许多有用的字符串相关函数。以下是一些示例,让您了解包装。

:::

  1. package main
  2. import s "strings"
  3. import "fmt"

::: {.en} We alias fmt.Println to a shorter name as we’ll use it a lot below. :::

::: {.zh}

我们将fmt.Println别名为一个较短的名称,因为我们将在下面使用很多。

:::

  1. var p = fmt.Println
  2. func main() {

::: {.en} Here’s a sample of the functions available in strings. Since these are functions from the package, not methods on the string object itself, we need pass the string in question as the first argument to the function. You can find more functions in the strings package docs. :::

::: {.zh}

这是strings中可用函数的示例。由于这些是来自包的函数,而不是字符串对象本身的方法,我们需要将有问题的字符串作为函数的第一个参数传递。您可以在[strings](http://golang.org/pkg/strings/)包文档中找到更多功能。

:::

  1. p("Contains: ", s.Contains("test", "es"))
  2. p("Count: ", s.Count("test", "t"))
  3. p("HasPrefix: ", s.HasPrefix("test", "te"))
  4. p("HasSuffix: ", s.HasSuffix("test", "st"))
  5. p("Index: ", s.Index("test", "e"))
  6. p("Join: ", s.Join([]string{"a", "b"}, "-"))
  7. p("Repeat: ", s.Repeat("a", 5))
  8. p("Replace: ", s.Replace("foo", "o", "0", -1))
  9. p("Replace: ", s.Replace("foo", "o", "0", 1))
  10. p("Split: ", s.Split("a-b-c-d-e", "-"))
  11. p("ToLower: ", s.ToLower("TEST"))
  12. p("ToUpper: ", s.ToUpper("test"))
  13. p()

::: {.en} Not part of strings, but worth mentioning here, are the mechanisms for getting the length of a string in bytes and getting a byte by index. :::

::: {.zh}

不是strings的一部分,但值得一提的是,以字节为单位获取字符串长度并按索引获取字节的机制。

:::

  1. p("Len: ", len("hello"))
  2. p("Char:", "hello"[1])
  3. }

::: {.en} Note that len and indexing above work at the byte level. Go uses UTF-8 encoded strings, so this is often useful as-is. If you’re working with potentially multi-byte characters you’ll want to use encoding-aware operations. See strings, bytes, runes and characters in Go for more information. :::

::: {.zh}

请注意,len和索引在字节级别上工作.Go使用UTF-8编码的字符串,因此通常使用fulas-is。如果您正在使用可能的多字节字符,则需要使用编码感知操作。有关详细信息,请参阅Go中的[字符串,字节,符文和字符](https://blog.golang.org/strings)。

:::

  1. $ go run string-functions.go
  2. Contains: true
  3. Count: 2
  4. HasPrefix: true
  5. HasSuffix: true
  6. Index: 1
  7. Join: a-b
  8. Repeat: aaaaa
  9. Replace: f00
  10. Replace: f0o
  11. Split: [a b c d e]
  12. ToLower: test
  13. ToUpper: TEST
  14. Len: 5
  15. Char: 101