字串

字串

1.可用" " 或是 ` `

var appleColor string = "red"
var appleColor1 string = `red`

``可用來放多行的字串,並且輸出會保留空格

用' '會錯誤

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

2. ' ' 單引號只能用在byte array

s := "good"
c := []byte(s)  // 轉為goog
c[3] = 'g'

用" "或` `會錯誤

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

核心Strings package

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

1.比較字串

可用== 或是 strings.Compare(a, b)

strings.Compare比 == 效率更好

結果是: 0 假如 a == b,

結果為 -1 假如 a < b

結果為 1 假如 a > b.

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

2.檢查是否包含

strings.Contains()

回傳true或false

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

也可用strings.ContainsAny("failure", "ura & i")

如果用&在contains() 還是會傳回false

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

3.轉為Unicode後比較是否包含

strings.ContainsRune()

https://play.golang.org/p/0puOGCxAdR

4.計算字串中特定字之重複次數

strings.Count()

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

5.忽略大小寫比較

strings.EqualFold()

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

6.字串轉Array

strings.Fields("  foo bar  baz solid  ")

以空格分隔轉為Array

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

7.替換特殊字元後比較

FieldsFunc第二個參數必須要是function 並return boolean
    f := func(c rune) bool {
        return !unicode.IsLetter(c) && !unicode.IsNumber(c)
    }
    fmt.Printf("Fields are: %q", strings.FieldsFunc("  foo1; b@ar2,baz3...", f))

第二個參數例如strings.FieldsFunc("test", func (c rune) bool { return true })

8.測試開頭是否包含字串

strings.HasPrefix("Gopher", "Go")

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

9.測試結尾是否包含

fmt.Println(strings.HasSuffix("banana", "na"))

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

10.查看字元在字串中的位置

fmt.Println(strings.Index("paper", "e"))

https://play.golang.org/p/haX84zOA-1

Last updated