go语言中字符串的理解

Go / 428人浏览 / 0人评论

如果你在学习计算机编程,必须了解的就是,在计算机中,所有的操作和数据实际在计算机中都是以二进制的形式存在,所以我们的操作实际上都是在操作二进制。

go语言中字符串的理解

如果你在学习计算机编程,必须了解的就是,在计算机中,所有的操作和数据实际在计算机中都是以二进制的形式存在,所以我们的操作实际上都是在操作二进制。

你所在计算机中看到的都是人们为了让计算机显示及输出现实生活中运用的生活助记符号,让计算机存储和输出。

所以就涉及了计算机的字符编码,字符集unicode:文字=>码点(ucs4,4个字节表示)。

什么是字符编码?什么是ASCII码?什么是字符集?

计算机字符集就涉及到计算机编码,计算机编码又涉及到全世界各国的不同符号,比如中文如何存入计算机,如何让计算机显示现在我们所在计算机中看到的文字,计算机是如何处理?

在go语言中,定义一个字符串,输出字符串及字符串的二进制。

go语言中文字符串演示案例,输出中文。

输出字符串示例

package main

import (
    "fmt"
    "strconv"
)

func main() {
    var nickname string = "编程之吧"
    fmt.Println(nickname)
    fmt.Println("第一个汉字十进制数:", nickname[0])
    fmt.Println("第二个汉字十进制数:", nickname[1])
    fmt.Println("第三个汉字十进制数:", nickname[2])
    fmt.Println("第四个汉字十进制数:", nickname[3])

    fmt.Println("字符串总长度:", len(nickname))

    fmt.Println()

    // 字符串转换成字节集合
    byteSet := []byte(nickname)
    fmt.Println(byteSet) //

    // 字节集合转换成字符集
    byteList := []byte{231, 188, 150, 231, 168, 139, 228, 185, 139, 229, 144, 167}
    targetString := string(byteList)

    fmt.Println(targetString)

    // 将字符串转换为 unicode字符集码点的集合
    tempSet := []rune(nickname)

    fmt.Println(tempSet)
    fmt.Println(tempSet[0], strconv.FormatInt(int64(tempSet[0]), 16)) // 对应十进制的 十六进制
    fmt.Println(tempSet[1], strconv.FormatInt(int64(tempSet[1]), 16)) // 对应十进制的 十六进制
    fmt.Println(tempSet[2], strconv.FormatInt(int64(tempSet[2]), 16)) // 对应十进制的 十六进制

    // rune集合 转换 为字符串
    runeList := []rune{32534, 31243, 20043, 21543} // 十进制
    targetRuneString := string(runeList)
    fmt.Println(targetRuneString)
}

输出示例

编程之吧
第一个汉字十进制数: 231
第二个汉字十进制数: 188
第三个汉字十进制数: 150
第四个汉字十进制数: 231
字符串总长度: 12

[231 188 150 231 168 139 228 185 139 229 144 167]
编程之吧
[32534 31243 20043 21543]
32534 7f16
31243 7a0b
20043 4e4b
编程之吧

转载注明:

0 条评论

还没有人发表评论

发表评论 取消回复

记住我的信息,方便下次评论
有人回复时邮件通知我