登录
首页 >  Golang >  Go问答

将整数转换为字符串/文本

来源:stackoverflow

时间:2024-02-22 16:45:25 321浏览 收藏

一分耕耘,一分收获!既然都打开这篇《将整数转换为字符串/文本》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新Golang相关的内容,希望对大家都有所帮助!

问题内容

我正在尝试将我在 java 中看到的一些东西重写为 go。

在 java 中,该示例使用 (char)1573346; 的类型转换将 int 1573346 转换为 char Ǣ 打印新值的 int 后,我​​得到 482; 的十进制 ascii

int num = 1573346;
char ascii = (char)num; // Ǣ
int asciiNum = (int)ascii; // 482

我找不到在 go 中做同样事情的方法。


解决方案


java的char类型是2字节或16位。当您在 java 中执行 (char)num 时,这会将 num “修剪”为 16 位,保留最低 16 位。

要在 go 中执行相同操作,首先将数字转换为 uint16,然后转换为 rune(也可以选择转换为 string 进行打印)。

请注意,在 go 中,您无法将常量值 1573346 转换为 uint16,因为该数字无法用 uint16 类型的值表示。因此,您首先必须将其分配给一个变量并转换该变量的值(这是允许的):

x := 1573346
fmt.println(string(rune(uint16(x))))

哪些输出:

Ǣ

等同于:

fmt.println(string(rune(482)))

尝试 Go Playground 上的示例。

https://play.golang.org/p/1eVgDANNTUT

package main

import "fmt"

func main() {
    var num = int(1573346)
    var ascii = uint16(num)
    var asciinum = int(ascii)

    fmt.printf("%d %c %d", num, ascii, asciinum)
}
1573346 Ǣ 482
Program exited.

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>