Golang strings 以及 strconv 的使用
strings的使用
HasPrefix
语法: strings.HasPrefix(s, prefix string) bool // 判断字符串s是否以prefix开头
// 判断一个url是否以http://开头,如果不是,则加上http:// package main import ( "fmt" "strings" ) func urlProcess(url string) string { res := strings.HasPrefix(url, "http://") if !res { url = "http://" + url } return url } func main() { var str string fmt.Scanf("%s\n", &str) res := urlProcess(str) fmt.Println(res) }
HasSuffix
语法: strings.HasSuffix(s, suffix string) bool // 判断字符串s是否以suffix结尾
// 判断一个路径是否以 / 结尾, 如果不是, 则加上 / . package main import ( "fmt" "strings" ) func pathPrecess(path string) string { res := strings.HasSuffix(path, "/") if !res { path += "/" } return path } func main(){ var path string fmt.Scanf("%s", &path) res := pathPrecess(path) fmt.Println(res) }
Index
语法: strings.Index(s, str string) int // 判断str在s中首次出现的位置, 如果没有, 则返回-1
LastIndex
语法: strings.LastIndex(s, str string) int // 判断str在s中最后一次出现的位置, 如果没有,则返回-1
// 写一个函数返回一个字符串在另一个字符串的首次出现和最后出现位置 package main import ( "fmt" "strings" ) func main(){ s := "qwerrewq" str := "w" res := strings.Index(s, str) lastRes := strings.LastIndex(s, str) fmt.Println(res, lastRes) }
Replace
语法: strings.Replace(s, old, new string, n int) string // 字符串替换
Count
语法: strings.Count(s, substr string) int // 字符串计数
Repeat
语法: strings.Repeat(s string, count int) string // 重复 count 次 s
ToLower
语法: strings.ToLower(s string) string // 全部转为小写
ToUpper
语法: strings.ToUpper(s string) string // 全部转为大写
// 写一个函数分别演示Replace Count Repeat ToLower ToUpper的用法 package main import ( "fmt" "strings" ) func main() { var str string fmt.Scanf("%s", &str) newReplace := strings.Replace(str, "he", "plm", 2) newCount := strings.Count(str, "he") newRepeat := strings.Repeat("okn", 6) newToLower := strings.ToLower(str) newToUpper := strings.ToUpper(str) fmt.Println(newReplace, newCount, newRepeat, newToLower, newToUpper) }
TrimSpace
语法: strings.TrimSpace(s string) string // 去掉字符串s的首尾空白字符
Trim
语法: strings.Trim(s string, cutset string) string // 去掉字符串s的首尾指定的cutset字符
TrimLeft
语法: strings.TrimLeft(s string, cutset string) string // 去掉字符串s的首部指定的cutset字符
TrimRight
语法: strings.TrimRight(s string, cutset string) string // 去掉字符串s的尾部指定的cutset字符
Fields
语法: strings.Fields(s string) []string // 返回以 空格 分隔的所有子串slice
Split
语法: strings.Split(s, sep string) []string // 返回以 sep 分隔的所有子串slice
Join
语法: strings.Join(a []string, sep string) string // 用sep把a中的所有元素链接起来
// 写一个函数分别演示TrimSpace Trim TrimLeft TrimRight Fields Split Join 的用法 package main import ( "fmt" "strings" ) func main(){ var str string fmt.Scanf("%s", &str) resTrimSpace := strings.TrimSpace(str) resTrim := strings.Trim(str, "ab") resTrimLeft := strings.TrimLeft(str, "ab") resTrimRight := strings.TrimRight(str, "ab") resFields := strings.Fields(str) resSplit := strings.Split(str, "a") resJoin := strings.Join(resSplit, "a") fmt.Println("TrimSpace: ", resTrimSpace, "\n", "Trim:", resTrim, "\n", "TrimLeft: ", resTrimLeft,"\n", "TrimRight: ", resTrimRight, "\n", "Fields: ", resFields, "\n", "Split: ", resSplit, "\n", "Join:", resJoin) }
strconv的使用
Itoa
语法: strconv.Itoa(i int) string // 把一个整数 i 转成一个字符串
Atoi
语法: strconv.Atoi(s string) (int, error) // 把一个字符串转成一个整数, 如果不能转, 则报错信息保留在error中, int为0
// 写一个函数分别演示Itoa Atoi的用法 package main import ( "fmt" "strconv" ) func main() { i := 5 s1 := "8" s2 := "m" res1 := strconv.Itoa(i) fmt.Println(res1) res2, err2 := strconv.Atoi(s1) res3, err3 := strconv.Atoi(s2) if err2 != nil { fmt.Println(s1, " 不能转成整数") }else { fmt.Println(res2) } if err3 != nil { fmt.Println(s2, " 不能转成整数") }else { fmt.Println(res3) } }