Go開發之路 -- strings以及strconv的使用
阿新 • • 發佈:2019-03-31
err 路徑 per 分享 用法 println last turn pack
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練習 1= "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 (練習 2"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) }練習 3
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) }練習 4
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) }練習 5
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) } }練習 6
Go開發之路 -- strings以及strconv的使用