@@ -1,58 +0,0 @@ 21.字符串转换 | 凤凰涅槃进阶之路

21.字符串转换

Abel sun2023年1月6日约 504 字大约 2 分钟

21.字符串转换

字符串转化的函数在strconv中,如下也只是列出一些常用的。

1,Append

Append 系列函数将整数等转换为字符串后,添加到现有的字节数组中。

    str := make([]byte, 0, 100)
    str = strconv.AppendInt(str, 4567, 10) //以10进制方式追加
    str = strconv.AppendBool(str, false)
    str = strconv.AppendQuote(str, "abcdefg")
    str = strconv.AppendQuoteRune(str, '单')

    fmt.Println(string(str)) //4567false"abcdefg"'单'

示例代码:

package main

import (
 "fmt"
 "strconv"
)

func main() {
 //转换为字符串后追加到字节数组
 slice := make([]byte, 0, 1024)
 slice = strconv.AppendBool(slice, true)
 //第二个数为要追加的内容,第3个数为指定10进制方式追加
 slice = strconv.AppendInt(slice, 1234, 10)
 slice = strconv.AppendQuote(slice, "abchelloeryajf")

 fmt.Println("slice = ", string(slice)) //转换为string之后再追加

}

2,Format

Format 系列函数把其他类型的转换为字符串。

    a := strconv.FormatBool(false)
    b := strconv.FormatInt(1234, 10)
    c := strconv.FormatUint(12345, 10)
    d := strconv.Itoa(1023)

    fmt.Println(a, b, c, d) //false 1234 12345 1023

示例代码:

package main

import (
 "fmt"
 "strconv"
)

func main() {
 //其他类型转换为字符串
 var str string
 str = strconv.FormatBool(false)
 //'f':指打印格式,以小数方式, -1指小数点位数(紧缩模式),64:指以float64处理
 str = strconv.FormatFloat(3.14, 'f', -1, 32)

 fmt.Println("str = ", str)
}

3,另外的常用转换

package main

import (
 "fmt"
 "strconv"
)

func main() {
 //整形转字符串,常用方式如下
 str = strconv.Itoa(666)
 fmt.Println("str = ", str)

 //字符串转其他类型
 var flag bool
 var err error
 flag, err = strconv.ParseBool("true")
 if err == nil {
  fmt.Println("flag = ", flag)
 } else {
  fmt.Println("err = ", err)
 }

 //把字符串转换为整形
 a, _ := strconv.Atoi("567")
 fmt.Println("a = ", a)

}

4,其他转换

package main

import (
 "fmt"
 "strconv"
)

func main() {
 //从字符串中解析出对应的数据
 str := "1000"
 ret1, err := strconv.ParseInt(str, 10, 64)
 if err != nil {
  fmt.Println("parse int failed, err", err)
  return
 }
 fmt.Printf("%#v\n", ret1)

 // Atoi:字符串转换成int
 ret2, _ := strconv.Atoi(str)
 fmt.Printf("%#v\n", ret2)
 // int 转换成子字符串
 i := 10
 ret3 := strconv.Itoa(i)
 fmt.Printf("%#v\n", ret3)
 // 从字符串中解析出布尔值
 boolStr := "true"
 bv, _ := strconv.ParseBool(boolStr)
 fmt.Printf("%#v  %T\n", bv, bv)

 // 从字符串中解析出浮点数
 floatStr := "1.23"
 fv, _ := strconv.ParseFloat(floatStr, 64)
 fmt.Printf("%#v  %T\n", fv, fv)
}

评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.9.1