Go语言常用字符串处理方法实例汇总
本文实例汇总了Go语言常用字符串处理方法。分享给大家供大家参考。具体如下:
packagemain import( "fmt" "strings" //"unicode/utf8" ) funcmain(){ fmt.Println("查找子串是否在指定的字符串中") fmt.Println("Contains函数的用法") 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("我是中国人","我")) //true fmt.Println("") fmt.Println("ContainsAny函数的用法") 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 fmt.Println("") fmt.Println("ContainsRune函数的用法") fmt.Println(strings.ContainsRune("我是中国",'我'))//true注意第二个参数,用的是字符 fmt.Println("") fmt.Println("Count函数的用法") fmt.Println(strings.Count("cheese","e"))//3 fmt.Println(strings.Count("five","")) //before&aftereachruneresult:5,源码中有实现 fmt.Println("") fmt.Println("EqualFold函数的用法") fmt.Println(strings.EqualFold("Go","go"))//大小写忽略 fmt.Println("") fmt.Println("Fields函数的用法") fmt.Println("Fieldsare:%q",strings.Fields(" foobar baz "))//["foo""bar""baz"]返回一个列表 //相当于用函数做为参数,支持匿名函数 for_,record:=range[]string{"aaa*1892*122","aaa\taa\t","124|939|22"}{ fmt.Println(strings.FieldsFunc(record,func(chrune)bool{ switch{ casech>'5': returntrue } returnfalse })) } fmt.Println("") fmt.Println("HasPrefix函数的用法") fmt.Println(strings.HasPrefix("NLT_abc","NLT"))//前缀是以NLT开头的 fmt.Println("") fmt.Println("HasSuffix函数的用法") fmt.Println(strings.HasSuffix("NLT_abc","abc"))//后缀是以NLT开头的 fmt.Println("") fmt.Println("Index函数的用法") fmt.Println(strings.Index("NLT_abc","abc"))//返回第一个匹配字符的位置,这里是4 fmt.Println(strings.Index("NLT_abc","aaa"))//在存在返回-1 fmt.Println(strings.Index("我是中国人","中")) //在存在返回6 fmt.Println("") fmt.Println("IndexAny函数的用法") fmt.Println(strings.IndexAny("我是中国人","中"))//在存在返回6 fmt.Println(strings.IndexAny("我是中国人","和"))//在存在返回-1 fmt.Println("") fmt.Println("Index函数的用法") fmt.Println(strings.IndexRune("NLT_abc",'b'))//返回第一个匹配字符的位置,这里是4 fmt.Println(strings.IndexRune("NLT_abc",'s'))//在存在返回-1 fmt.Println(strings.IndexRune("我是中国人",'中')) //在存在返回6 fmt.Println("") fmt.Println("Join函数的用法") s:=[]string{"foo","bar","baz"} fmt.Println(strings.Join(s,","))//返回字符串:foo,bar,baz fmt.Println("") fmt.Println("LastIndex函数的用法") fmt.Println(strings.LastIndex("gogopher","go"))//3 fmt.Println("") fmt.Println("LastIndexAny函数的用法") fmt.Println(strings.LastIndexAny("gogopher","go"))//4 fmt.Println(strings.LastIndexAny("我是中国人","中")) //6 fmt.Println("") fmt.Println("Map函数的用法") rot13:=func(rrune)rune{ switch{ caser>='A'&&r<='Z': return'A'+(r-'A'+13)%26 caser>='a'&&r<='z': return'a'+(r-'a'+13)%26 } returnr } fmt.Println(strings.Map(rot13,"'Twasbrilligandtheslithygopher...")) fmt.Println("") fmt.Println("Repeat函数的用法") fmt.Println("ba"+strings.Repeat("na",2))//banana fmt.Println("") fmt.Println("Replace函数的用法") fmt.Println(strings.Replace("oinkoinkoink","k","ky",2)) fmt.Println(strings.Replace("oinkoinkoink","oink","moo",-1)) fmt.Println("") fmt.Println("Split函数的用法") fmt.Printf("%q\n",strings.Split("a,b,c",",")) fmt.Printf("%q\n",strings.Split("amanaplanacanalpanama","a")) fmt.Printf("%q\n",strings.Split("xyz","")) fmt.Printf("%q\n",strings.Split("","BernardoO'Higgins")) fmt.Println("") fmt.Println("SplitAfter函数的用法") fmt.Printf("%q\n",strings.SplitAfter("/home/m_ta/src","/"))//["/""home/""m_ta/""src"] fmt.Println("") fmt.Println("SplitAfterN函数的用法") fmt.Printf("%q\n",strings.SplitAfterN("/home/m_ta/src","/",2)) //["/""home/m_ta/src"] fmt.Printf("%q\n",strings.SplitAfterN("#home#m_ta#src","#",-1))//["/""home/""m_ta/""src"] fmt.Println("") fmt.Println("SplitN函数的用法") fmt.Printf("%q\n",strings.SplitN("/home/m_ta/src","/",1)) fmt.Printf("%q\n",strings.SplitN("/home/m_ta/src","/",2)) //["/""home/""m_ta/""src"] fmt.Printf("%q\n",strings.SplitN("/home/m_ta/src","/",-1))//["""home""m_ta""src"] fmt.Printf("%q\n",strings.SplitN("home,m_ta,src",",",2)) //["/""home/""m_ta/""src"] fmt.Printf("%q\n",strings.SplitN("#home#m_ta#src","#",-1))//["/""home/""m_ta/""src"] fmt.Println("") fmt.Println("Title函数的用法")//这个函数,还真不知道有什么用 fmt.Println(strings.Title("herroyalhighness")) fmt.Println("") fmt.Println("ToLower函数的用法") fmt.Println(strings.ToLower("Gopher"))//gopher fmt.Println("") fmt.Println("ToLowerSpecial函数的用法") fmt.Println("") fmt.Println("ToTitle函数的用法") fmt.Println(strings.ToTitle("loudnoises")) fmt.Println(strings.ToTitle("loud中国")) fmt.Println("") fmt.Println("Replace函数的用法") fmt.Println(strings.Replace("ABAACEDF","A","a",2))//aBaACEDF //第四个参数小于0,表示所有的都替换,可以看下golang的文档 fmt.Println(strings.Replace("ABAACEDF","A","a",-1))//aBaaCEDF fmt.Println("") fmt.Println("ToUpper函数的用法") fmt.Println(strings.ToUpper("Gopher"))//GOPHER fmt.Println("") fmt.Println("Trim 函数的用法") fmt.Printf("[%q]",strings.Trim("!!!Achtung!!!","!"))//["Achtung"] fmt.Println("") fmt.Println("TrimLeft函数的用法") fmt.Printf("[%q]",strings.TrimLeft("!!!Achtung!!!","!"))//["Achtung!!!"] fmt.Println("") fmt.Println("TrimSpace函数的用法") fmt.Println(strings.TrimSpace("\t\nalonegopher\n\t\r\n"))//alonegopher }
希望本文所述对大家的Go语言程序设计有所帮助。