use*_*828 74 string character go
如何获得"E"输出而不是69?
package main
import "fmt"
func main() {
fmt.Print("HELLO"[1])
}
Run Code Online (Sandbox Code Playgroud)
Golang是否具有将char转换为byte的功能,反之亦然?
pet*_*rSO 122
解释的字符串文字是使用单个字符的(可能是多字节)UTF-8编码的双引号""之间的字符序列.在UTF-8中,ASCII字符是与前128个Unicode字符对应的单字节.字符串的行为类似于字节切片.符文是标识Unicode代码点的整数值.因此,
package main
import "fmt"
func main() {
fmt.Println(string("Hello"[1])) // ASCII only
fmt.Println(string([]rune("Hello, ??")[1])) // UTF-8
fmt.Println(string([]rune("Hello, ??")[8])) // UTF-8
}
Run Code Online (Sandbox Code Playgroud)
输出:
e
e
?
Run Code Online (Sandbox Code Playgroud)
读:
Ric*_*her 15
怎么样这个?
fmt.Printf("%c","HELLO"[1])
Run Code Online (Sandbox Code Playgroud)
正如Peter指出的那样,不仅仅是ASCII:
fmt.Printf("%c", []rune("HELLO")[1])
Run Code Online (Sandbox Code Playgroud)
您也可以尝试使用字符串对其进行类型转换。
package main
import "fmt"
func main() {
fmt.Println(string("Hello"[1]))
}
Run Code Online (Sandbox Code Playgroud)
Go并没有这样的字符类型.byte通常用于ASCII字符,rune用于Unicode字符,但它们都只是整数类型的别名(uint8和int32).因此,如果您想强制将它们打印为字符而不是数字,则需要使用Printf("%c", x).该%c格式规范适用于任何整数类型.
也可以通过切片来完成
package main
import "fmt"
func main() {
fmt.Print("HELLO"[1:2])
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
86554 次 |
| 最近记录: |