含中文字符串
使用同一种方法进行遍历输出
var str1 = "你好"
for i:=0;i<len(str1);i++{
fmt.Printf("文本:%c,ascii码:%d\n",str1[i],str1[i])
fmt.Println("默认输出:",str1[i])
// 输出
文本:ä,ascii码:228
默认输出: 228
文本:½,ascii码:189
默认输出: 189
文本: ,ascii码:160
默认输出: 160
文本:å,ascii码:229
默认输出: 229
文本:¥,ascii码:165
默认输出: 165
文本:½,ascii码:189
默认输出: 189
go语言默认把中文字符串保存为utf8格式,使用上述方式遍历输出子串会报错
var str1 = "你好"
for j,k:=range str1{
fmt.Printf("变量j的值:%d\n",j)
fmt.Printf("变量k的值:%c\n",k)
// 输出 j的值为中文的第一个字节下标
变量j的值:0
变量k的值:你
变量j的值:3
变量k的值:好
// 不需要前一个变量的值,可以使用`_`代替
for _,k:=range str1{
fmt.Printf("变量k的值:%c\n",k)
// 输出
变量k的值:你
变量k的值:好
遍历不含中文的字符串func main() { var str1 = "abcd" for i:=0;i<len(str1);i++{ fmt.Printf("文本:%c,ascii码:%d\n",str1[i],str1[i]) fmt.Println("默认输出:",str1[i]) }}// 输出:文本:a,ascii码97默认输出: 97文本:b,...
etree软件包是一个轻量级的纯go软件包,它以元素树的形式表示XML。 它的设计灵感来自Python 模块。
该软件包的一些功能和特性:
将XML文档表示为元素树,以便于遍历。
从头开始导入,序列化,修改或创建XML文档。
向文件,字节片,字符串和io接口读写XML。
使用轻量级的类似XPath的查询API执行简单或复杂的搜索。
使用空格或制表符自动缩进XML,以提高可读性。
完全实施; 仅取决于标准的go库。
构建在go 包之上。
创建一个XML文档
以下示例使用etree包从头开始创建XML文档,并将其缩进内容输出到stdout。
doc := etree . NewDocument ()
doc . CreateProcInst ( "xml" , `version="1.0" encoding="UTF-8"` )
doc . CreateProcInst ( "xml-stylesheet" , `type="text/xsl" href="style.xsl"` )
people := doc . CreateElement ( "People" )
一种是 uint8 类型,或者叫 byte 型,代表了 ASCII 码的一个字符。
另一种是 rune 类型,代表一个 UTF-8 字符,当需要处理中文、日文或者其他复合字符时,则需要用到 rune 类型。rune 类型等价于 int32 类型。
byte 类型是 uint8 的别名,对于只占用 1 个字节的传统 ASCII 编码的字符来说,完全没有问题,例如 var ch byte = 'A'
在go语言中支持两种方式遍历字符串。第一种方式是以字节数组的方式遍历。例如代码:str := "beijing,北京"
for i := 0; i < len(str); i++{
fmt.Println(i, " ", str[i])
}输入结果为:0 98
1 101
10 151
11 228
12 186
13 172可以看出,这个字符串长度为14,尽管从...
今天看golang代码看到一个单词 rune ,熟悉而陌生。之前学习go并没有过多注意这个“神秘符号”。rune在golang中是int32的别名,在各个方面都与int32相同。被用来区分字符值和整数值。
做几个小测试
func main() {
s:="hello你好"
fmt.Println(len(s)) //输出11 ,其中一个汉字占用3个长度
//输出7 汉字和英...
golang处理中文时默认是utf8,当遇到其他如GBK字符是就会出现乱码,此处介绍golang 官方golang.org/x/text/encoding/simplifiedchinese包下的编码转换
package main
import "golang.org/x/text/encoding/simplifiedchinese"
type Charset string
const