Golang字符串类型转换
字符统计问题
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 你好,世界
}
和bool相互转换
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)
}
}
和float相互转换
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"
}
fmt.Printf
可以很方便的将一些其它数据类型转换成字符串
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"
}
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgekiai
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01