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)
}
练习 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

 

posted @ 2019-03-31 19:41  李培冠  阅读(841)  评论(0编辑  收藏  举报