1. 程式人生 > >Go開發之路 -- strings以及strconv的使用

Go開發之路 -- strings以及strconv的使用

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 
= "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

Go開發之路 -- strings以及strconv的使用