Golang数字的字母表示形式
有没有简单的方法可以将数字转换为字母?
例如,
3
=> "C"
和23
=> "W"
?
回答:
为简单起见,以下解决方案中省略了范围检查。
它们都可以在Go Playground上尝试。
号码-> rune
只需将数字'A' - 1
添加1
到const即可,然后将其添加到const中'A'
,然后添加2
get 'B'
等。
func toChar(i int) rune { return rune('A' - 1 + i)
}
测试它:
for _, i := range []int{1, 2, 23, 26} { fmt.Printf("%d %q\n", i, toChar(i))
}
输出:
1 'A'2 'B'
23 'W'
26 'Z'
号码-> string
或者,如果您希望将其作为string
:
func toCharStr(i int) string { return string('A' - 1 + i)
}
输出:
1 "A"2 "B"
23 "W"
26 "Z"
string
在规范中记录了最后一个(将数字转换为):在字符串类型之间来回转换:
将有符号或无符号整数值转换为字符串类型会产生一个包含该整数的UTF-8表示形式的字符串。
编号-> string
(已缓存)
如果您需要多次执行此操作strings
,例如将其存储在一个数组中,然后string
从中返回即可,这是有利可图的:
var arr = [...]string{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}
func toCharStrArr(i int) string {
return arr[i-1]
}
注意:切片(而不是数组)也可以。
注2:你可以,如果你添加一个虚拟的第一个字符,所以你不必减去改善这个1
来自i
:
var arr = [...]string{".", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}
func toCharStrArr(i int) string { return arr[i] }
数字-> string
(切片string
常量)
另一个有趣的解决方案:
const abc = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"func toCharStrConst(i int) string {
return abc[i-1 : i]
}
切片a string
是有效的:新方法string
将共享后备数组(可以完成,因为string
s是不可变的)。
以上是 Golang数字的字母表示形式 的全部内容, 来源链接: utcz.com/qa/423114.html