前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GoLang中字符串的一些使用总结

GoLang中字符串的一些使用总结

作者头像
小锟哥哥
发布2022-05-10 08:08:53
1.1K0
发布2022-05-10 08:08:53
举报
文章被收录于专栏:GoLang全栈

“ 在项目当中接触到最多的应该就是字符串了,比如在写API时收到前台发来的请求,大部分我相信都是字符串,我们接下来就针对字符串在GoLang中的一些处理做个小小的总结。 ”

01

字符串的格式化输出

代码语言:javascript
复制
package main
import "fmt"
func main() {
    fmt.Println("Hello")
}

我相信这是所有人入门输入的第一句代码,足够简单,我们深入一点。

代码语言:javascript
复制
package main
import "fmt"
func main() {
    fmt.Printf("Hi, my name is %v","BoB")
}

当我们需要在输出的字符里面插入一些自己想加的内容,那就要用到格式化了,和其他的C语言啥的都类似,这里我列一下这些动词和功能的具体参数:

动词

功能

%v

按照值的本来值输出

%+v

在%v基础上,对结构体字段名和1值进行展开

%#v

输出Go语言语法格式的值

%T

输出Go语言-语法格式的类型和值

%%

输出%本体

%b

整型以二进制方式显示

%。

整型以八进制方式显示

%d

整型以十进制方式显示

%x

整型以十六进制方式显示

%X

整型以十六进制、字母大写方式显示

%U

Unicode字符

%f

浮点数

%p

指针,十六进制方式显示

有些我们不常用的,可以先不记住他,用到了再来查也可以。

02

字符串的类型转换

当我们收到客户端发来的请求时,大部分数据都是需要我们二次处理才能使用的,比如把字符串转int,转int64等接下来咱们看看Go里面怎么转的。

代码语言:javascript
复制
   AByString := "1"   BByInt := 2
    
    //类型转换成int
    CByInt,err := strconv.Atoi(AByString)
    if err != nil {
        fmt.Errorf("类型转换出错 %v",err)
    }
    
    fmt.Println(BByInt + CByInt)

这是stringint

代码语言:javascript
复制
    AByString := "1"
    
    //字符串转int64
    DByInt64, err := strconv.ParseInt(AByString, 10, 64)
    //int64转string
    EByString := strconv.FormatInt(DByInt64, 10)
    EByInt64, err := strconv.ParseInt(EByString, 10, 64)
    
    fmt.Println(EByInt64 + DByInt64)

这里用到了:

  • string转int64
  • int64转string

strconv包里面有很多API是用来转换数据类型,这里就不一一列举了,我们常见的类型转换里面都已经包含了。

03

字符串的加密解密

加密解密是项目里面必不可少的,比如数据传输时,如果明文传输是一件非常可怕的事,我给大家介绍两个常见的加密算法:

Base64

首先是一个可逆的加密算法 base64,Go语言中提供了加密模块,我们直接使用就好了。

代码语言:javascript
复制
import (
    "fmt"
    "encoding/base64"
)    
func main() {
    // 声明一个字符串,并转换为byte数组
    input := []byte("hello world")
    // base64编码
    encodeString := base64.StdEncoding.EncodeToString(input)
    
    fmt.Println(encodeString)

    // 对上面的编码结果进行base64解码
    decodeBytes, err := base64.StdEncoding.DecodeString(encodeString)
    if err != nil {
        fmt.Println(err)
    }
    
    fmt.Println(string(decodeBytes))
}

在数据加密解密这块Go语言做得是比较不错的。

MD5

MD5和BASE64差不多,直接就看范例吧:

代码语言:javascript
复制
import (
    "fmt"
    "crypto/md5"
)

func main() {
    // 声明一个字符串,并转换为byte数组
    input := []byte("hello world")
    has := md5.Sum(input)
    md5str1 := fmt.Sprintf("%x", has) //将[]byte转成16进制
    
    fmt.Println(md5str1)
}

字符串相关的内容大概就这么多。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-10-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GoLang全栈 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • “ 在项目当中接触到最多的应该就是字符串了,比如在写API时收到前台发来的请求,大部分我相信都是字符串,我们接下来就针对字符串在GoLang中的一些处理做个小小的总结。 ”
  • 字符串的格式化输出
  • 字符串的类型转换
  • 字符串的加密解密
    • Base64
      • MD5
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档