string检索类函数
package main
import (
"fmt"
"strings"
"unicode"
)
/*
1、func Contains(s, substr string) bool
判断字符串s是否包含substr字符串
2、func ContainsAny(s, chars string) bool
判断字符串s是否包含chars字符串中的任一字符
3、func ContainsRune(s string, r rune) bool
判断字符串s是否包含unicode码值r
4、func Count(s, sep string) int
返回字符串s包含字符串sep的个数
5、func HasPrefix(s, prefix string) bool
判断字符串s是否有前缀字符串prefix
6、func HasSuffix(s, suffix string) bool
判断字符串s是否有后缀字符串suffix
7、func Index(s, sep string) int
返回字符串s中字符串sep首次出现的位置
8、func IndexAny(s, chars string) int
返回字符串chars中的任一unicode码值r在s中首次出现的位置
9、func IndexByte(s string, c byte) int
返回字符串s中字符c首次出现位置
10、func IndexFunc(s string, f func(rune) bool) int
返回字符串s中满足函数f(r)==true字符首次出现的位置
11、func IndexRune(s string, r rune) int
返回unicode码值r在字符串中首次出现的位置
12、func LastIndex(s, sep string) int
返回字符串s中字符串sep最后一次出现的位置
13、func LastIndexAny(s, chars string) int
返回字符串s中任意一个unicode码值r最后一次出现的位置
14、func LastIndexByte(s string, c byte) int
返回字符串s中字符c最后一次出现的位置
15、func LastIndexFunc(s string, f func(rune) bool) int
返回字符串s中满足函数f(r)==true字符最后一次出现的位置
*/
func main() {
TestLastIndexFunc()
}
func TestContains() {
fmt.Println(strings.Contains("seafood", "foo"))//true
fmt.Println(strings.Contains("seafood", "bar"))//false
fmt.Println(strings.Contains("seafood", ""))//true
fmt.Println(strings.Contains("", ""))//true
fmt.Println(strings.Contains("jonson郑2008", "郑"))//true
}
func TestContainsAny() {
fmt.Println(strings.ContainsAny("team", "i"))//false
fmt.Println(strings.ContainsAny("failure", "u & i"))//true
fmt.Println(strings.ContainsAny("foo", ""))//false
fmt.Println(strings.ContainsAny("", ""))//false
}
func TestContainsRune() {
fmt.Println(strings.ContainsRune("一丁丂", '丁'))//true
fmt.Println(strings.ContainsRune("一丁丂", 19969))//true
}
func TestCount() {
fmt.Println(strings.Count("cheese", "e"))//3
fmt.Println(strings.Count("one", ""))//4
}
func TestHasPrefix() {
fmt.Println(strings.HasPrefix("1000phone news", "1000"))//true
fmt.Println(strings.HasPrefix("1000phone news", "1000a"))//false
}
func TestHasSuffix() {
fmt.Println(strings.HasSuffix("1000phone news", "news"))//true
fmt.Println(strings.HasSuffix("1000phone news", "new"))//false
}
func TestIndex() {
fmt.Println(strings.Index("chicken", "ken"))//4
fmt.Println(strings.Index("chicken", "dmr"))//-1
}
func TestIndexAny() {
fmt.Println(strings.IndexAny("abcABC120", "教育基地A"))//3
}
func TestIndexByte() {
fmt.Println(strings.IndexByte("123abc", 'a'))//3
}
func TestIndexRune() {
fmt.Println(strings.IndexRune("abcABC120", 'C'))//5
fmt.Println(strings.IndexRune("It培训教育", '教'))//8
}
func TestIndexFunc() {
f := func(c rune) bool {
return unicode.Is(unicode.Han , c)
}
fmt.Println(strings.IndexFunc("Hello123,中国" , f))//9
}
func TestLastIndex() {
fmt.Println(strings.LastIndex("jonson learn english", "e"))//13
fmt.Println(strings.Index("go gopher", "go"))//0
fmt.Println(strings.LastIndex("go gopher", "go"))//3
fmt.Println(strings.LastIndex("go gopher", "rodent"))//-1
}
func TestLastIndexAny() {
fmt.Println(strings.LastIndexAny("chicken", "aeiouy"))//5
fmt.Println(strings.LastIndexAny("crwth", "aeiouy"))//-1
}
func TestLastIndexByte() {
fmt.Println(strings.LastIndexByte("abcABCA123", 'A'))//6
}
func TestLastIndexFunc() {
f := func(c rune) bool {
return unicode.Is(unicode.Han, c)
}
fmt.Println(strings.LastIndexFunc("Hello,世界", f))//9
fmt.Println(strings.LastIndexFunc("Hello,world中国人", f))//17
}
-
本文链接: https://dreamerjonson.com/2018/11/30/golang-22-string-package/
-
版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 CN协议 许可协议。转载请注明出处!
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
算法交易:制胜策略与原理
[美]欧内斯特·陈(Ernest P. Chan) / 高闻酉、黄蕊 / 机械工业出版社 / 49.00
本书是一本引人入胜、信息量大、覆盖各类交易策略的图书。无论个人投资者,还是机构投资者,都可以借鉴和使用其中的策略。本书中的策略大致可分为均值回归系统和动量系统两大类。书中不仅介绍了如何使用每种类别的交易策略,更解释了各种策略之所以有效的原因。本书始终以简单、线性的交易策略为重心,因为复杂的交易策略容易受到过度拟合及数据窥探的侵害。数学和软件是算法交易的两条腿。本书用到了一定程度的数学知识,使其对各......一起来看看 《算法交易:制胜策略与原理》 这本书的介绍吧!