1.len获取的是字节数
2.utf8.RuneCountInString(p1) 统计p1中的字符数
3.range是按字符遍历的
4.rune int32别名 用来区分字符串和整型
package main
import (
"fmt"
"unicode/utf8"
)
func main() {
a := "hello world 你好,世界"
//len获取的是字节数
fmt.Println(len(a)) //27
//utf8.RuneCountInString(p1) 统计p1中的字符数
fmt.Println(utf8.RuneCountInString(a)) //17
//range是按字符遍历的
for k, v := range a {
fmt.Println(k, string(v))
}
//rune int32别名 用来区分字符串和整型
b := []rune(a)
fmt.Println(b) //[104 101 108 108 111 32 119 111 114 108 100 32 20320 22909 65292 19990 30028]
}
1.[]byte(p1) 将字符串p1转换为字节切片
2.string(p1) 将字节切片p1转换为字符串
package main
import (
"fmt"
)
func main() {
a := "hello world 你好,世界"
//[]byte(p1) 将字符串p1转换为字节切片
b := []byte(a)
fmt.Println(b) //[104 101 108 108 111 32 119 111 114 108 100 32 228 189 160 229 165 189 239 188 140 228 184 150 231 149 140]
// string(p1) 将字节切片p1转换为字符串
fmt.Println(string(b)) //hello world 你好,世界
}
1.strconv.ParseBool(p1) 将字符串p1转换成bool,p1(“true”,“True”,“1”,“0”,“False”,“false”)才能成功转换
2.strconv.FormatBool(p1) 将bool类型p1转换成字符串
package main
import (
"fmt"
"strconv"
)
func main() {
a := "true"
var c bool
//strconv.ParseBool(p1) 将字符串p1转换成bool,p1("true","True","1","0","False","false")才能成功转换
if b, err := strconv.ParseBool(a); err != nil {
panic(err)
} else {
c = b
}
fmt.Println(c) //true
// strconv.FormatBool(p1) 将bool类型p1转换成字符串
fmt.Printf("%#v", strconv.FormatBool(c)) //"true"
}
1.strconv.Atoi(p1) 将字符串p1转换成整型(int)
2.strconv.ParseInt(p1, p2, p3) 将字符串p1转换成整型,p2:按照什么进制转换 p3:转换后的类型长度
package main
import (
"fmt"
"reflect"
"strconv"
)
func main() {
a := "16"
// strconv.Atoi(p1) 将字符串p1转换成整型(int)
if atoi, err := strconv.Atoi(a); err == nil {
fmt.Printf("%#v", atoi) //16
} else {
panic(err)
}
// strconv.ParseInt(p1, p2, p3) 将字符串p1转换成整型,p2:按照什么进制转换 p3:转换后的类型长度
if parseInt, err := strconv.ParseInt(a, 10, 64); err == nil {
fmt.Printf("%#v", parseInt) //16
fmt.Println(reflect.TypeOf(parseInt)) //int64
} else {
panic(err)
}
}
1.strconv.FormatFloat(p1,p2,p3,p4) 将float64 p1转换成字符串 p2:格式 p3:小数几位(-1保持原有位数) p4:精度
2.strconv.ParseFloat(p1,p2) 将字符串转换成float p2:精度
package main
import (
"fmt"
"strconv"
)
func main() {
var a float64 = 3.1415
fmt.Println(a)
//strconv.FormatFloat(p1,p2,p3,p4) 将float64 p1转换成字符串 p2:格式 p3:小数几位(-1保持原有位数) p4:精度
float := strconv.FormatFloat(a, 'f', 10, 64)
fmt.Printf("%#v\r\n", float) //"3.1415000000"
fmt.Printf("%#v\r\n", strconv.FormatFloat(a, 'f', -1, 64)) //"3.1415"
//strconv.ParseFloat(p1,p2) 将字符串转换成float p2:精度
if parseFloat, err := strconv.ParseFloat(float, 64); err == nil {
fmt.Printf("%#v\r\n", parseFloat) //3.1415
} else {
panic(err)
}
fmt.Printf("%#v\r\n", fmt.Sprintf("%.4f", 3.1415)) // "3.1415"
}
可以很方便的将一些其它数据类型转换成字符串
package main
import "fmt"
func main() {
fmt.Printf("%#v\r\n",fmt.Sprintf("%d",16)) // "16"
//转换float到string 需要知道小数有几位
fmt.Printf("%#v\r\n",fmt.Sprintf("%.4f",16.1616)) // "16.1616"
fmt.Printf("%#v\r\n",fmt.Sprintf("%t",true)) // "true"
}