Go-strings

u013344915 · · 3078 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

示例的函数列表

  • Contains: search for a smaller string in a bigger string.
  • Count: count the number of times a smaller string occurs in a bigger string.
  • HasPrefix: determine if a bigger string starts with a smaller string.
  • HasSuffix: determine if a bigger string ends with a smaller string.
  • Index: find the position of a smaller string in a bigger string.
  • Join: take a list of strings and join them together in a single string separated by another string.
  • Repeat: repeat a string.
  • Replace: replace a smaller string in a bigger string with some other string. Replace also takes a number indicating how many - times to do the replacement (pass -1 to do it as many times as possible).
  • Split: split a string into a list of strings by a separating string.
  • ToLower: convert a string to all lowercase letters.
  • ToUpper: convert a string to all uppercase letters.

代码

package main
import "fmt"
import "strings" // Not 'string'

func main() {
    test_strings()
}

func test_strings() {
    fmt.Println(strings.Contains("test", "es")) // true 
    fmt.Println(strings.Contains("test", "esx")) // false

    fmt.Println(strings.Count("test", "es")) // 1
    fmt.Println(strings.Count("test", "t")) // 2
    fmt.Println(strings.Count("test", "xes")) // 0

    fmt.Println(strings.HasPrefix("test", "tes")) // true
    fmt.Println(strings.HasPrefix("test", "xes")) // false

    fmt.Println(strings.HasSuffix("test", "est")) // true
    fmt.Println(strings.HasSuffix("test", "xes")) // false
    fmt.Println(strings.HasSuffix("test", "")) // ture. //Ooh, who will write this code?!

    fmt.Println(strings.Index("test", "est")) // 1
    fmt.Println(strings.Index("test", "xes")) // -1

    fmt.Println(strings.Join([]string{"a", "b"}, "-")) //"a-b"
    fmt.Println(strings.Join([]string{"a", "b"}, "")) // "ab"

    fmt.Println(strings.Repeat("abc", 3)) // "abcabcabc"

    fmt.Println(strings.Replace("aaaa", "a", "b", 0)) // "aaaa"
    fmt.Println(strings.Replace("aaaa", "a", "b", 2)) // "bbaa"
    fmt.Println(strings.Replace("aaaa", "a", "b", -1)) // "bbbb"
    fmt.Println(strings.Replace("aaaa", "a", "b", -2)) // "bbbb". It does workds, but do not use it.

    fmt.Println(strings.Split("a-b-c-d", "-")) // [a b c d]

    fmt.Println(strings.ToLower("TEST")) // "test"
    fmt.Println(strings.ToUpper("test")) // "TEST"

    // convert a string to a slice of bytes (and vice versa).
    fmt.Println([]byte("test")) //[116 101 115 116]
    fmt.Println(string([]byte{'t', 'e', 's', 't'})) // "test"
}

godoc cmd/strings

PACKAGE DOCUMENTATION

package strings
    import "."

    Package strings implements simple functions to manipulate UTF-8 encoded
    strings.

    For information about UTF-8 strings in Go, see
    https://blog.golang.org/strings.

FUNCTIONS

func Compare(a, b string) int
    Compare returns an integer comparing two strings lexicographically. The
    result will be 0 if a==b, -1 if a < b, and +1 if a > b.

    Compare is included only for symmetry with package bytes. It is usually
    clearer and always faster to use the built-in string comparison
    operators ==, <, >, and so on.

func Contains(s, substr string) bool
    Contains reports whether substr is within s.

func ContainsAny(s, chars string) bool
    ContainsAny reports whether any Unicode code points in chars are within
    s.

func ContainsRune(s string, r rune) bool
    ContainsRune reports whether the Unicode code point r is within s.

func Count(s, sep string) int
    Count counts the number of non-overlapping instances of sep in s. If sep
    is an empty string, Count returns 1 + the number of Unicode code points
    in s.

func EqualFold(s, t string) bool
    EqualFold reports whether s and t, interpreted as UTF-8 strings, are
    equal under Unicode case-folding.

func Fields(s string) []string
    Fields splits the string s around each instance of one or more
    consecutive white space characters, as defined by unicode.IsSpace,
    returning an array of substrings of s or an empty list if s contains
    only white space.

func FieldsFunc(s string, f func(rune) bool) []string
    FieldsFunc splits the string s at each run of Unicode code points c
    satisfying f(c) and returns an array of slices of s. If all code points
    in s satisfy f(c) or the string is empty, an empty slice is returned.
    FieldsFunc makes no guarantees about the order in which it calls f(c).
    If f does not return consistent results for a given c, FieldsFunc may
    crash.

func HasPrefix(s, prefix string) bool
    HasPrefix tests whether the string s begins with prefix.

func HasSuffix(s, suffix string) bool
    HasSuffix tests whether the string s ends with suffix.

func Index(s, sep string) int
    Index returns the index of the first instance of sep in s, or -1 if sep
    is not present in s.

func IndexAny(s, chars string) int
    IndexAny returns the index of the first instance of any Unicode code
    point from chars in s, or -1 if no Unicode code point from chars is
    present in s.

func IndexByte(s string, c byte) int
    IndexByte returns the index of the first instance of c in s, or -1 if c
    is not present in s.

func IndexFunc(s string, f func(rune) bool) int
    IndexFunc returns the index into s of the first Unicode code point
    satisfying f(c), or -1 if none do.

func IndexRune(s string, r rune) int
    IndexRune returns the index of the first instance of the Unicode code
    point r, or -1 if rune is not present in s.

func Join(a []string, sep string) string
    Join concatenates the elements of a to create a single string. The
    separator string sep is placed between elements in the resulting string.

func LastIndex(s, sep string) int
    LastIndex returns the index of the last instance of sep in s, or -1 if
    sep is not present in s.

func LastIndexAny(s, chars string) int
    LastIndexAny returns the index of the last instance of any Unicode code
    point from chars in s, or -1 if no Unicode code point from chars is
    present in s.

func LastIndexByte(s string, c byte) int
    LastIndexByte returns the index of the last instance of c in s, or -1 if
    c is not present in s.

func LastIndexFunc(s string, f func(rune) bool) int
    LastIndexFunc returns the index into s of the last Unicode code point
    satisfying f(c), or -1 if none do.

func Map(mapping func(rune) rune, s string) string
    Map returns a copy of the string s with all its characters modified
    according to the mapping function. If mapping returns a negative value,
    the character is dropped from the string with no replacement.

func Repeat(s string, count int) string
    Repeat returns a new string consisting of count copies of the string s.

func Replace(s, old, new string, n int) string
    Replace returns a copy of the string s with the first n non-overlapping
    instances of old replaced by new. If old is empty, it matches at the
    beginning of the string and after each UTF-8 sequence, yielding up to
    k+1 replacements for a k-rune string. If n < 0, there is no limit on the
    number of replacements.

func Split(s, sep string) []string
    Split slices s into all substrings separated by sep and returns a slice
    of the substrings between those separators. If sep is empty, Split
    splits after each UTF-8 sequence. It is equivalent to SplitN with a
    count of -1.

func SplitAfter(s, sep string) []string
    SplitAfter slices s into all substrings after each instance of sep and
    returns a slice of those substrings. If sep is empty, SplitAfter splits
    after each UTF-8 sequence. It is equivalent to SplitAfterN with a count
    of -1.

func SplitAfterN(s, sep string, n int) []string
    SplitAfterN slices s into substrings after each instance of sep and
    returns a slice of those substrings. If sep is empty, SplitAfterN splits
    after each UTF-8 sequence. The count determines the number of substrings
    to return:

        n > 0: at most n substrings; the last substring will be the unsplit remainder.
        n == 0: the result is nil (zero substrings)
        n < 0: all substrings

func SplitN(s, sep string, n int) []string
    SplitN slices s into substrings separated by sep and returns a slice of
    the substrings between those separators. If sep is empty, SplitN splits
    after each UTF-8 sequence. The count determines the number of substrings
    to return:

        n > 0: at most n substrings; the last substring will be the unsplit remainder.
        n == 0: the result is nil (zero substrings)
        n < 0: all substrings

func Title(s string) string
    Title returns a copy of the string s with all Unicode letters that begin
    words mapped to their title case.

    BUG(rsc): The rule Title uses for word boundaries does not handle
    Unicode punctuation properly.

func ToLower(s string) string
    ToLower returns a copy of the string s with all Unicode letters mapped
    to their lower case.

func ToLowerSpecial(_case unicode.SpecialCase, s string) string
    ToLowerSpecial returns a copy of the string s with all Unicode letters
    mapped to their lower case, giving priority to the special casing rules.

func ToTitle(s string) string
    ToTitle returns a copy of the string s with all Unicode letters mapped
    to their title case.

func ToTitleSpecial(_case unicode.SpecialCase, s string) string
    ToTitleSpecial returns a copy of the string s with all Unicode letters
    mapped to their title case, giving priority to the special casing rules.

func ToUpper(s string) string
    ToUpper returns a copy of the string s with all Unicode letters mapped
    to their upper case.

func ToUpperSpecial(_case unicode.SpecialCase, s string) string
    ToUpperSpecial returns a copy of the string s with all Unicode letters
    mapped to their upper case, giving priority to the special casing rules.

func Trim(s string, cutset string) string
    Trim returns a slice of the string s with all leading and trailing
    Unicode code points contained in cutset removed.

func TrimFunc(s string, f func(rune) bool) string
    TrimFunc returns a slice of the string s with all leading and trailing
    Unicode code points c satisfying f(c) removed.

func TrimLeft(s string, cutset string) string
    TrimLeft returns a slice of the string s with all leading Unicode code
    points contained in cutset removed.

func TrimLeftFunc(s string, f func(rune) bool) string
    TrimLeftFunc returns a slice of the string s with all leading Unicode
    code points c satisfying f(c) removed.

func TrimPrefix(s, prefix string) string
    TrimPrefix returns s without the provided leading prefix string. If s
    doesn't start with prefix, s is returned unchanged.

func TrimRight(s string, cutset string) string
    TrimRight returns a slice of the string s, with all trailing Unicode
    code points contained in cutset removed.

func TrimRightFunc(s string, f func(rune) bool) string
    TrimRightFunc returns a slice of the string s with all trailing Unicode
    code points c satisfying f(c) removed.

func TrimSpace(s string) string
    TrimSpace returns a slice of the string s, with all leading and trailing
    white space removed, as defined by Unicode.

func TrimSuffix(s, suffix string) string
    TrimSuffix returns s without the provided trailing suffix string. If s
    doesn't end with suffix, s is returned unchanged.

TYPES

type Reader struct {
    // contains filtered or unexported fields
}
    A Reader implements the io.Reader, io.ReaderAt, io.Seeker, io.WriterTo,
    io.ByteScanner, and io.RuneScanner interfaces by reading from a string.

func NewReader(s string) *Reader
    NewReader returns a new Reader reading from s. It is similar to
    bytes.NewBufferString but more efficient and read-only.

func (r *Reader) Len() int
    Len returns the number of bytes of the unread portion of the string.

func (r *Reader) Read(b []byte) (n int, err error)

func (r *Reader) ReadAt(b []byte, off int64) (n int, err error)

func (r *Reader) ReadByte() (byte, error)

func (r *Reader) ReadRune() (ch rune, size int, err error)

func (r *Reader) Reset(s string)
    Reset resets the Reader to be reading from s.

func (r *Reader) Seek(offset int64, whence int) (int64, error)
    Seek implements the io.Seeker interface.

func (r *Reader) Size() int64
    Size returns the original length of the underlying string. Size is the
    number of bytes available for reading via ReadAt. The returned value is
    always the same and is not affected by calls to any other method.

func (r *Reader) UnreadByte() error

func (r *Reader) UnreadRune() error

func (r *Reader) WriteTo(w io.Writer) (n int64, err error)
    WriteTo implements the io.WriterTo interface.

type Replacer struct {
    // contains filtered or unexported fields
}
    Replacer replaces a list of strings with replacements. It is safe for
    concurrent use by multiple goroutines.

func NewReplacer(oldnew ...string) *Replacer
    NewReplacer returns a new Replacer from a list of old, new string pairs.
    Replacements are performed in order, without overlapping matches.

func (r *Replacer) Replace(s string) string
    Replace returns a copy of s with all replacements performed.

func (r *Replacer) WriteString(w io.Writer, s string) (n int, err error)
    WriteString writes s to w with all replacements performed.



BUGS

   The rule Title uses for word boundaries does not handle Unicode
   punctuation properly.

有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:u013344915

查看原文:Go-strings

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3078 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传