一、strings和strconv的使用
strings
判断字符串s是否以prefix开头
strings.HasPrefix(s string,preffix string) bool:
判断字符串s是否以suffix结尾
stirngs.HasSuffix(s string,suffix string) bool:
判断str在s中首次出现的位置,如果没有出现,则返回-1
strings.Index(s string,str string) int:
判断str在s中最后出现的位置,如果没有出现,则返回-1
strings.LastIndex(s string,str string) int:
字符串替换
strings.Replace(str string,old string,new string,n int):
字符串计数
strings.Count(str string,count int)string:
重复count次str
strings.Repeat(str string,count int) string:
转换为小写
strings.ToLower(str string)
转换为大写
strings.ToUpper(str string)string:
去掉字符串首位空白字符
strings.TrimSpace(str string):
去掉字符串首尾cut字符
strings.Trim(str string,cut string):
去掉字符串首部cut字符
strings.TrimLeft(str string,cut string):
去掉字符串尾部cut字符
strings.TrimRight(str string,cunt string):
返回str空格分隔的所有子串的slice
strings.Field(str string):
返回str split分割的所有子串的slice
string.Split(str string,split string):
用sep把s1中的所有元素连接起来
strings.Join(s1 []string,sep string):
小练习 1
判断url 不是http://开头 机上http://s 判断是否以 / 结尾,不是加上
package main import ( "fmt" "strings" ) func urlProcess(url string) string { result := strings.HasPrefix(url, "http://") if !result { url = fmt.Sprintf("http://%s", url) } return url } func pathProcess(path string) string { result := strings.HasSuffix(path, "/") if !result { path = fmt.Sprintf("%s/", path) } return path } func main() { var ( url string path string ) fmt.Scanf("%s%s", &url, &path) url = urlProcess(url) path = pathProcess(path) fmt.Println(url) fmt.Println(path) }
输出结果如下
小练习 2
package main import ( "fmt" "strconv" "strings" ) func main() { str := " hello world abc \n" result := strings.Replace(str, "world", "you", 1) fmt.Println("replace:", result) count := strings.Count(str, "l") fmt.Println("count:", count) result = strings.Repeat(str, 3) fmt.Println("repeat:", result) result = strings.ToLower(str) fmt.Println("lower:", result) result = strings.ToUpper(str) fmt.Println("upper:", result) result = strings.TrimSpace(str) fmt.Println("trimSpace:", result) result = strings.Trim(str, " \n\r") fmt.Println("trim:", result) result = strings.TrimLeft(str, " \n\r") fmt.Println("trimLeft:", result) result = strings.TrimRight(str, " \n\r") fmt.Println("trimRight", result) splitResult := strings.Fields(str) for i := 0; i < len(splitResult); i++ { fmt.Println(splitResult[i]) } splitResult = strings.Split(str, "l") for i := 0; i < len(splitResult); i++ { fmt.Println(splitResult[i]) } str2 := strings.Join(splitResult, "l") fmt.Println("join:", str2) str2 = strconv.Itoa(1000) fmt.Println("itoa:", str2) number, err := strconv.Atoi("abc") if err != nil { fmt.Println("can not convert to int,", err) return } fmt.Println("number:", number) }