一、strings和strconv的使用

strings

判断字符串s是否以prefix开头

strings.HasPrefix(s string,preffix string) bool:

判断字符串s是否以suffix结尾

stirngs.HasSuffix(s string,suffix string) bool:

判断str在s中首次出现的位置,如果没有出现,则返回-1

strings.Index(s string,str string) int:

判断str在s中最后出现的位置,如果没有出现,则返回-1

strings.LastIndex(s string,str string) int:

字符串替换

strings.Replace(str string,old string,new string,n int):

字符串计数

strings.Count(str string,count int)string:

重复count次str

strings.Repeat(str string,count int) string:

转换为小写

strings.ToLower(str string)

转换为大写

strings.ToUpper(str string)string:

去掉字符串首位空白字符

strings.TrimSpace(str string):

去掉字符串首尾cut字符

strings.Trim(str string,cut string):

去掉字符串首部cut字符

strings.TrimLeft(str string,cut string):

去掉字符串尾部cut字符

strings.TrimRight(str string,cunt string):

返回str空格分隔的所有子串的slice

strings.Field(str string):

返回str split分割的所有子串的slice

string.Split(str string,split string):

用sep把s1中的所有元素连接起来

strings.Join(s1 []string,sep string):  

 

小练习 1 

判断url 不是http://开头 机上http://s  判断是否以 / 结尾,不是加上

package main

import (
    "fmt"
    "strings"
)

func urlProcess(url string) string {

    result := strings.HasPrefix(url, "http://")
    if !result {
        url = fmt.Sprintf("http://%s", url)
    }

    return url
}

func pathProcess(path string) string {
    result := strings.HasSuffix(path, "/")
    if !result {
        path = fmt.Sprintf("%s/", path)
    }

    return path
}

func main() {
    var (
        url  string
        path string
    )

    fmt.Scanf("%s%s", &url, &path)
    url = urlProcess(url)
    path = pathProcess(path)

    fmt.Println(url)
    fmt.Println(path)
}

输出结果如下

03 | 字符串,时间,流程控制,函数

 小练习 2

package main

import (
    "fmt"
    "strconv"
    "strings"
)

func main() {

    str := "   hello world abc   \n"
    result := strings.Replace(str, "world", "you", 1)
    fmt.Println("replace:", result)

    count := strings.Count(str, "l")
    fmt.Println("count:", count)

    result = strings.Repeat(str, 3)
    fmt.Println("repeat:", result)

    result = strings.ToLower(str)
    fmt.Println("lower:", result)

    result = strings.ToUpper(str)
    fmt.Println("upper:", result)

    result = strings.TrimSpace(str)
    fmt.Println("trimSpace:", result)

    result = strings.Trim(str, " \n\r")
    fmt.Println("trim:", result)

    result = strings.TrimLeft(str, " \n\r")
    fmt.Println("trimLeft:", result)

    result = strings.TrimRight(str, " \n\r")
    fmt.Println("trimRight", result)

    splitResult := strings.Fields(str)
    for i := 0; i < len(splitResult); i++ {
        fmt.Println(splitResult[i])
    }

    splitResult = strings.Split(str, "l")
    for i := 0; i < len(splitResult); i++ {
        fmt.Println(splitResult[i])
    }

    str2 := strings.Join(splitResult, "l")
    fmt.Println("join:", str2)

    str2 = strconv.Itoa(1000)
    fmt.Println("itoa:", str2)

    number, err := strconv.Atoi("abc")
    if err != nil {
        fmt.Println("can not convert to int,", err)
        return
    }

    fmt.Println("number:", number)
}
View Code

相关文章: