strconv包

作者: ljh123 | 来源:发表于2018-09-13 11:35 被阅读6次

    这个包实现了基本数据之间进行相互转换。
    一、常量
    (1)IntSize
    原型:const IntSize = intSize
    其值是int或uint类型的字位数,32位操作系统其值是32,64位系统其值是64
    二、变量
    (1)ErrRange
    原型:var ErrRange = errors.New("value out of range")
    ErrRange表示超出目标类型表示范围。
    (2)ErrSyntax
    原型:var ErrSyntax = errors.New("invlid syntax")
    ErrSyntax表示不符合目标类型语法。

    package main
    
    import (
        "fmt"
        "strconv"
    )
    
    func main() {
        /*---- 常量 ----*/
        fmt.Println(strconv.IntSize)
        /*---- 变量 ----*/
        fmt.Println(strconv.ErrRange)
        fmt.Println(strconv.ErrSyntax)
    }
    

    三、方法
    1)布尔与字符串之间进行相互转换
    func FormatBool(b bool) string // 将布尔值转换为字符串 true 或false

    // 将字符串转换为布尔值
    // 当str为:1,t,T,TRUE,true,True中的一种时为真值
    // 当str为:0,f,F,FALSE,false,False中的一种时为假值
    // 当str不为上面的两种情况时,会返回一个错误
    func ParseBool(str string) (bool, error)

    package main
    
    import (
        "fmt"
        "strconv"
    )
    
    func main() {
        /*--- bool -> string ---*/
        fmt.Println(strconv.FormatBool(true))
        fmt.Println(strconv.FormatBool(false))
        /*--- string -> bool ---*/
        fmt.Println(strconv.ParseBool("1"))
        fmt.Println(strconv.ParseBool("t"))
        fmt.Println(strconv.ParseBool("TRUE"))
        fmt.Println(strconv.ParseBool("true"))
        fmt.Println(strconv.ParseBool("True"))
    
        fmt.Println(strconv.ParseBool("0"))
        fmt.Println(strconv.ParseBool("f"))
        fmt.Println(strconv.ParseBool("FALSE"))
        fmt.Println(strconv.ParseBool("false"))
        fmt.Println(strconv.ParseBool("False"))
    
        fmt.Println(strconv.ParseBool("dasd"))
    }
    

    2)整数和字符串进行转换
    // 将整数转换为字符串形式。base表示进制转换,取值在2到36之间。
    // 结果种大于10的数字用小写字母 a-z 表示
    func FormatInt(i int64, base int) string
    func FormatUint(i uint64, base int) string

    // 将字符串解析为整数,ParseInt支持正负号,ParseUint不支持正负号。
    // base 表示进位制(2到36),如果base位0,则根据字符串前缀判断,前缀 0x 表示十六进制,前缀 0 表示 8 进制,否则为 10 进制。
    // bitSize 表示结果的位宽(包括符号位),0表示最大为宽。
    func ParseInt(s string, base int, bitSize int) (i int64, err error)
    func ParseUint(s string, base int, bitSize int) (uint64, error)

    func Itoa(i int) string // 将整数转换位十进制字符串形式,(即:formatInt(i, 10)的简写)
    func Atoi(s string) (int, error) // 将字符串转换为十进制整数,s为十进制值即:ParserInt(s, 10, 0)的简写

    package main
    
    import (
        "fmt"
        "strconv"
    )
    
    func main() {
        /*--- 整数 -> 字符串 ---*/
        fmt.Println(strconv.FormatInt(10, 2))
        fmt.Println(strconv.FormatUint(10, 2))
        fmt.Println(strconv.Itoa(12))
    
        /*--- 字符串 -> 整数 ---*/
        fmt.Println(strconv.ParseInt("12", 8, 0))
        fmt.Println(strconv.ParseUint("12", 3, 0))
        fmt.Println(strconv.Atoi("12"))
    }
    

    3)浮点数和字符串之间进行转换
    // 将字符串解析为浮点数,使用IEEE754规范进行舍入。
    // bitSize 取值有 32 和 64 两种,表示转换结果的精度。
    // 如果有语法错误,则err.Error = ErrSyntax
    // 如果结果超出范围,则返回 ±Inf,er.Error = ErrRange
    func ParseFloat(s string, bitSize int) (float64, error)

    package main
    
    import (
        "fmt"
        "strconv"
    )
    
    func main() {
        /*--- 浮点数 -> 字符串 ---*/
        fmt.Println(strconv.ParseFloat("123.23", 32))
    }
    

    4)字符串判断
    // 判断字符串是否可以不被修改的表示为一个单行的反引号字符串。
    // 字符串中不能含有控制字符(除了\t)和“反引号” 字符,否则返回 false
    func CanBackquote(s string) bool

    // 判断 r 是否为可打印字符
    // 可否打印并不是你想象的那样,比如空格可以打印,而 \t 则不能打印
    func IsPrint(r rune) bool

    // 判断 r r是否为 Unicode 定义的图形字符。
    func IsGraphic(r rune) bool

    5)字符串转换
    // 将 s 转换为双引号字符串
    func Quote(s string) string

    // 功能同上,非 ASCII 字符和不可打印字符会被转义
    func QuoteToASCII(s string) string

    // 功能同上,非图形字符会被转义
    func QuoteToASCII(s string) string

    // 功能同上,非ASCII字符和不可打印字符会被转义
    func QuoteToASCII(s string) string

    // 功能同上,非图形字符会被转义
    func QuoteToGraphic(s string) string

    // 将 r 转换为单引号字符
    func QuoteRune(r rune) string

    // 功能同上,非ASCII字符和不可打印字符会被转义
    func QuoteRuneToASCII(r rune) string

    // 功能同上,非图形字符会被转义
    func QuoteRuneToGraphic(r rune) string

    // Unquote 将 “带引号的字符串” s 转换为常规的字符串(不带引号和转义字符)
    // s可以是 “单引号”、“双引号” 或 “反引号” 引起来的字符串(包括引号本身)
    // 如果s是单引号引起来的字符串,则返回该字符串表达的字符
    func Unquote(s string) (string, error)

    // UnquoteChar 将带引号字符串(不包含首尾的引号)中的第一个字符 “取消转义” 并解码
    // s : 带引号字符串(不包含首尾的引号)
    // quote: 字符串使用的 “引号符” (用于对字符串中的引号符 “取消转义”)

    // value : 解码后的字符
    // multibyte: value 是否为多字节字符
    // tail : 字符串 s 解码后剩余部分
    // error : 返回 s 中是否存在语法错误
    // 参数 quote 为 “引号符”
    // 如果设置为单引号,则 s 中允许出现 \‘、“ 字符,不允许出现单独 ' 字符
    // 如果设置为双引号,则 s 中允许出现 "、’ 字符,不允许出现单独 " 字符
    // 如果设置为0,则不允许出现 ' 或 " 字符,但可以出现单独的 ' 或 " 字符
    func UnquoteChar(s string, quote byte) (value rune, multibyte bool, tail string, err error)

    // 将各种类型转换为字符串后追加到 dst 尾部
    func AppendInt(dst []byte, i int64, base int) []byte
    func AppendUint(dst []byte, i uint64, base int) []byte
    func AppendFloat(dst []byte, f float64, fmt byte, prec, bitSize int) []byte
    func AppendBool(dst []byte, b bool) []byte

    // 将各种类型转换为带引号字符串追加到 dst 尾部
    func AppendQuote(dst []byte,s string) []byte
    func AppendQutoToASCII(dst []byte, s string) []byte
    func AppendQutoToGraphic(dst []byte, s string) []byte
    func AppendQutoToRune(dst []byte, s string) []byte
    func AppendQutoToTuneToASCII(dst []byte, r rune) []byte
    func AppendQutoToGraphic(dst []byte, r rune) []byte

    可以参考:https://www.cnblogs.com/golove/p/3262925.html

    相关文章

      网友评论

        本文标题:strconv包

        本文链接:https://www.haomeiwen.com/subject/kjyigftx.html