首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >string util 笔记

string util 笔记

作者头像
solate
发布2019-07-22 17:24:53
6810
发布2019-07-22 17:24:53
举报
文章被收录于专栏:solate 杂货铺solate 杂货铺

这个主要为了收集对于string 字符串的一些操作,如果有更好的会进行替换。欢迎补充评论点赞。

放置/libs/utils/...

字符串前缀是否存在

/**
字符串前缀是否是prefix 是为true
 */
func HasPrefix(s, prefix string) bool  {
	return len(s)>=len(prefix) && s[0:len(prefix)]==prefix
}

字符串后缀是否存在

/**
字符串后缀是否为suffix 是为true
 */
func HasSuffix(s, suffix string) bool  {
	return len(s) >= len(suffix) && s[len(s)-len(suffix):]==suffix
}

从行首截取字符串

/**
从行首截取字符串
 */
func SubPrefix(s string, len int) string  {
	return string(s[len:])
}

首字母大写

func UpperFirst(str string) string {
	if len(str) < 1 || str[0] < 'a' || str[0] > 'z' {
		return str
	}

	strB := []byte(str)
	strB[0] = strB[0] - byte(32)
	return string(strB)
}

第二种

func Ucfirst(str string) string {
    for i, v := range str {
        return string(unicode.ToUpper(v)) + str[i+1:]
    }
    return ""
}

首字母小写

func LowerFirst(str string) string {
	if len(str) < 1 || str[0] < 'A' || str[0] > 'Z' {
		return str
	}

	strB := []byte(str)
	strB[0] = strB[0] + byte(32)
	return string(strB)
}

第二种

func Lcfirst(str string) string {
    for i, v := range str {
        return string(unicode.ToLower(v)) + str[i+1:]
    }
    return ""
}

下划线变为驼峰

func UnderlineToCamel(str string)string{
	strPortions := strings.Split(str, "_")
	for i := range strPortions{
		strB := []byte(strPortions[i])
		if strB[0] >= 'a' && strB[0] <= 'z'{
			strB[0] = strB[0] - byte(32)
			strPortions[i] = string(strB)
		}
	}
	return strings.Join(strPortions, "")
}

驼峰变为下划线

func CamelToUnderline(str string)string{
	strB := []byte{}
	strLen := len(str)
	for i := 0; i < strLen; i++ {
		if str[i] >= 'A' && str[i] <= 'Z' {
			if i > 0 {
				strB = append(strB, '_')
			}
			strB = append(strB, str[i] + byte(32))
		} else {
			strB = append(strB, str[i])
		}
	}
	return string(strB)
}

对字符串进行base64编码和解码

//base64 编码
func Base64Encode(value string) string {
	encode := base64.StdEncoding.EncodeToString([]byte(value))
	return encode
}

//base64解码
func Base64Decde(value string) ([]byte, error) {
	decode, err := base64.StdEncoding.DecodeString(value)
	return decode, err
}

字符串反转

package main
 
import (
    "fmt"
)
 
func main() {
    s := "hello,golang语言"
    fmt.Println(reverseString(s))
    fmt.Println(reverseString(reverseString(s)))
    // output: 言语gnalog,olleh
    // output: hello,golang语言
}
 
// 反转字符串
func reverseString(s string) string {
    runes := []rune(s)
    for from, to := 0, len(runes)-1; from < to; from, to = from+1, to-1 {
        runes[from], runes[to] = runes[to], runes[from]
    }
    return string(runes)
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 字符串前缀是否存在
  • 字符串后缀是否存在
  • 从行首截取字符串
  • 首字母大写
  • 首字母小写
  • 下划线变为驼峰
  • 驼峰变为下划线
  • 对字符串进行base64编码和解码
  • 字符串反转
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档