zoukankan      html  css  js  c++  java
  • 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://::
    ")
        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("判断一个路径是否以“/”结尾,如果不是,则加上/::
    ")
        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::
    ")
        result := strings.Index(str, "w")
        fmt.Println(result)
    }
    
    func lastIndex() {
        str := "www.baidu.com"
        fmt.Println("判断str在s中最后出现的位置,如果没有出现,则返回-1::
    ")
        result := strings.LastIndex(str, "y")
        fmt.Println(result)
    }
    
    func replace() {
        str := "www.baidu.com"
        fmt.Println("字符串替换::
    ")
        result := strings.Replace(str, "w", "q", 2)
        fmt.Println(result)
    }
    
    func count() {
        str := "www.baidu.com"
        fmt.Println("字符串计数::
    ")
        result := strings.Count(str, "ww")
        fmt.Println(result)
    }
    
    func repeat() {
        str := "www.baidu.com"
        fmt.Println("重复count次字符串::
    ")
        result := strings.Repeat(str, 3)
        fmt.Println(result)
    }
    
    func toLower() {
        str := "www.BaiDu.cOm"
        fmt.Println("转成小写字符串::
    ")
        result := strings.ToLower(str)
        fmt.Println(result)
    }
    
    func toUpper() {
        str := "www.baiDu.com"
        fmt.Println("转成大写字符串::
    ")
        result := strings.ToUpper(str)
        fmt.Println(result)
    }
    
    func trimSpace() {
        str := "   www.baiDu.com    "
        fmt.Println("去掉字符串首尾空白字符串::
    ")
        result := strings.TrimSpace(str)
        fmt.Println(result)
    }
    
    func trim() {
        str := "abbacba"
        fmt.Println("去掉字符串首尾cut字符串::
    ")
        result := strings.Trim(str, "ab") //注意,不分顺序
        fmt.Println(result)
    }
    
    func trimLeft() {
        str := "nwww.baiDu.comn"
        fmt.Println("去掉字符串首cut字符串::
    ")
        result := strings.TrimLeft(str, "n")
        fmt.Println(result)
    }
    
    func trimRight() {
        str := "nwww.baiDu.comn"
        fmt.Println("去掉字符串尾cut字符串::
    ")
        result := strings.TrimRight(str, "n")
        fmt.Println(result)
    }
    
    func fields() {
        str := "abd bac wdc rsxx"
        fmt.Println("返回str空格分隔的所有子串的slice::
    ")
        result := strings.Fields(str)
        fmt.Println(result)
    }
    
    func split() {
        str := "ascedcrfcyg"
        fmt.Println("转成数组,返回str split分隔的所有子串的slice,同PHP中的explode::
    ")
        result := strings.Split(str, "c")
        fmt.Println(result)
    }
    
    func join() {
        arr := []string{"a","s","as"}
        fmt.Println("转成字符串,用sep把s1中的所有元素链接起来,同PHP中的implode::
    ")
        result := strings.Join(arr, ",")
        fmt.Println(result)
    }
    
    func itoa() {
        int := 112
        fmt.Println("把一个整数i转成字符串::
    ")
        result := strconv.Itoa(int)
        fmt.Println(result)
        fmt.Printf("%T
    ",result)
    }
    
    func atoi() {
        str := "123426"
        fmt.Println("把一个字符串转成整数::
    ")
        result,err := strconv.Atoi(str)
        fmt.Println(result)
        fmt.Println(err)
        fmt.Printf("%T
    ",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(目标查找字符串, 要查找字符串)

  • 相关阅读:
    VC CUtilityLZW 效率还行的LZW压缩算法,随机数加密
    VC CQHashNTBuffer 牛逼的Hash表 UINT32
    VC CHashBuffer 牛逼的hash表算法,字符串查找块了100倍
    关闭Fedora防火墙
    gnome 屏幕截图
    zynq -- arm-xilinx-eabi-路径
    Fedora 14安装出现的错误
    fedora19安装后,需要安装的一些必备的软件包
    zynq -- cannot find -lxil
    Zynq -- 启动过程
  • 原文地址:https://www.cnblogs.com/two-bees/p/12394357.html
Copyright © 2011-2022 走看看