Go開發之路 -- 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)
}
練習 1

 

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)
}
練習 2

 


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
相關文章
相關標籤/搜索