zoukankan      html  css  js  c++  java
  • GoLang中字符串的一些使用

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

    一、字符串的格式化输出

    package main
    import "fmt"
    func main() {
    	fmt.Println("Hello")
    }
    

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

    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 指针,十六进制方式显示

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

    二、字符串的类型转换

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

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

    这是stringint

        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是用来转换数据类型,这里就不一一列举了,我们常见的类型转换里面都已经包含了。

    三、字符串的加密解密

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

    Base64

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

    
    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差不多,直接就看范例吧:

    
    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)
    }
    
     
  • 相关阅读:
    查询是哪个进程占用了特定端口
    (面向c#开发人员) 编写javascript的好习惯一 false 值
    onerror 事件 如何使用 onerror 事件捕获网页中的错误。(chrome、opera、safari 浏览器不支持)
    查找url里面的flag元素判断操作
    jquery 弹出窗
    向上滚动
    kissy helpcenter
    kissyAPI
    IE6 动态创建 iframe 无法显示的 bug 芒果
    图片轮换动画仿GIF
  • 原文地址:https://www.cnblogs.com/zhangzhiping35/p/11059483.html
Copyright © 2011-2022 走看看