go - 字符串函数

go语言字符串相关处理函数:

package main

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

func main() {
    hasPrefix()//判断字符串s是否以prefix开头 。
    hasSuffix()//判断字符串s是否以suffix结尾。
    index()//判断str在s中首次出现的位置,如果没有出现,则返回-1
    lastIndex()//判断str在s中最后出现的位置,如果没有出现,则返回-1
    replace()//字符串替换
    count()//字符串计数
    repeat()//重复count次str
    toLower()//转为小写
    toUpper()//转为大写
    trimSpace()//去掉字符串首尾空白字符
    trim()//去掉字符串首尾cut字符
    trimLeft()//去掉字符串首cut字符
    trimRight()//去掉字符串尾cut字符
    fields()//返回str空格分隔的所有子串的slice
    split()//返回str split分隔的所有子串的slice
    join()//用sep把s1中的所有元素链接起来
    itoa()//把一个整数i转成字符串
    atoi()//把一个字符串转成整数
}

func hasPrefix() {
    url := "www.baidu.com"
    fmt.Println("判断一个url是否以http://开头,如果不是,则加上http://::\n")
    result := strings.HasPrefix(url, "http://")
    fmt.Println(result)
    if !result {
        url = fmt.Sprintf("http://%s", url)
    }
    fmt.Println(url)
}

func hasSuffix() {
    path := "www.baidu.com"
    fmt.Println("判断一个路径是否以“/”结尾,如果不是,则加上/::\n")
    result := strings.HasSuffix(path, "/")
    fmt.Println(result)
    if !result {
        path = fmt.Sprintf("%s/", path)
    }
    fmt.Println(path)
}

func index() {
    str := "www.baidu.com"
    fmt.Println("判断str在s中首次出现的位置,如果没有出现,则返回-1::\n")
    result := strings.Index(str, "w")
    fmt.Println(result)
}

func lastIndex() {
    str := "www.baidu.com"
    fmt.Println("判断str在s中最后出现的位置,如果没有出现,则返回-1::\n")
    result := strings.LastIndex(str, "y")
    fmt.Println(result)
}

func replace() {
    str := "www.baidu.com"
    fmt.Println("字符串替换::\n")
    result := strings.Replace(str, "w", "q", 2)
    fmt.Println(result)
}

func count() {
    str := "www.baidu.com"
    fmt.Println("字符串计数::\n")
    result := strings.Count(str, "ww")
    fmt.Println(result)
}

func repeat() {
    str := "www.baidu.com"
    fmt.Println("重复count次字符串::\n")
    result := strings.Repeat(str, 3)
    fmt.Println(result)
}

func toLower() {
    str := "www.BaiDu.cOm"
    fmt.Println("转成小写字符串::\n")
    result := strings.ToLower(str)
    fmt.Println(result)
}

func toUpper() {
    str := "www.baiDu.com"
    fmt.Println("转成大写字符串::\n")
    result := strings.ToUpper(str)
    fmt.Println(result)
}

func trimSpace() {
    str := "   www.baiDu.com    "
    fmt.Println("去掉字符串首尾空白字符串::\n")
    result := strings.TrimSpace(str)
    fmt.Println(result)
}

func trim() {
    str := "abbacba"
    fmt.Println("去掉字符串首尾cut字符串::\n")
    result := strings.Trim(str, "ab") //注意,不分顺序
    fmt.Println(result)
}

func trimLeft() {
    str := "nwww.baiDu.comn"
    fmt.Println("去掉字符串首cut字符串::\n")
    result := strings.TrimLeft(str, "n")
    fmt.Println(result)
}

func trimRight() {
    str := "nwww.baiDu.comn"
    fmt.Println("去掉字符串尾cut字符串::\n")
    result := strings.TrimRight(str, "n")
    fmt.Println(result)
}

func fields() {
    str := "abd bac wdc rsxx"
    fmt.Println("返回str空格分隔的所有子串的slice::\n")
    result := strings.Fields(str)
    fmt.Println(result)
}

func split() {
    str := "ascedcrfcyg"
    fmt.Println("转成数组,返回str split分隔的所有子串的slice,同PHP中的explode::\n")
    result := strings.Split(str, "c")
    fmt.Println(result)
}

func join() {
    arr := []string{"a","s","as"}
    fmt.Println("转成字符串,用sep把s1中的所有元素链接起来,同PHP中的implode::\n")
    result := strings.Join(arr, ",")
    fmt.Println(result)
}

func itoa() {
    int := 112
    fmt.Println("把一个整数i转成字符串::\n")
    result := strconv.Itoa(int)
    fmt.Println(result)
    fmt.Printf("%T\n",result)
}

func atoi() {
    str := "123426"
    fmt.Println("把一个字符串转成整数::\n")
    result,err := strconv.Atoi(str)
    fmt.Println(result)
    fmt.Println(err)
    fmt.Printf("%T\n",result)
}

遇到再新增。

一个反转字符串的栗子:

var str string
    fmt.Scanf("%s",&str)
    reverse := func(str string) string {
        var result string
        strlen := len(str)
        for i := 0; i < strlen; i++ {
        result = result + fmt.Sprintf("%c", str[strlen-i-1])
    }
        return result
    }(str)
    fmt.Println("reverse string =", reverse)

 判断字符串是否存在: strings.Contains(目标查找字符串, 要查找字符串)

posted @ 2020-05-28 13:20  谦逊的铅笔  阅读(225)  评论(0编辑  收藏  举报