go内建容器-字符和字符串操作
1.基础定义
在基础语法篇提到过golang的rune相当于其他编程语言的char,其本质是一个int32(四字节),用[]rune来转换一个字符串时,得到的是个解码后的结果,存储在新开辟的[]rune空间中,而不是对原字符串进行'解释'
对[]byte进行解码需要用到utf8包中的DecodeRune(p []byte) (r rune, size int)函数
2.常用包
在进行字符和字符串操作时常用的包有unicode/utf8(解码、转码等功能)和strings(字符串操作),两个包里的函数很多,不一一展示
测试代码
package main
import (
"fmt"
"strings"
"unicode/utf8"
)
func testChars() {
s :="golang真好玩!" //UTF-8
fmt.Println("utf8")
for _,b := range []byte(s){
fmt.Printf("%X ",b)
}
strings.Split()
fmt.Println()
fmt.Println("unicode")
for n,ch := range s{
fmt.Printf("|%d %X| ",n,ch) //ch is a rune (int32)
}
fmt.Println()
fmt.Println("Rune count:",utf8.RuneCountInString(s))
fmt.Println("Decode")
bytes := []byte(s)
for len(bytes) > 0{
ch,size := utf8.DecodeRune(bytes)
bytes = bytes[size:]
fmt.Printf("%c",ch)
}
fmt.Println()
for n,ch := range []rune(s){
fmt.Printf("|%d %c|",n,ch)
}
}
func main() {
testChars()
}
go内建容器-字符和字符串操作的更多相关文章
- 微信浏览器内建的WeixinJSBridge 实现“返回”操作
微信浏览器内建的WeixinJSBridge 实现“返回”操作 WeixinJSBridge.call('closeWindow');
- go内建容器-Map
1.基础定义 golang中的map如同它的函数一样"纯粹",map就是用来存储键值对的容器,别管什么哈希不哈希的(底层已实现),用就行 //创建一个map m := map[st ...
- go内建容器-切片
1.基础定义 看到'切片'二字,满脸懵逼.切的啥?用的什么刀法切?得到的切片有什么特点?可以对切片进行什么操作? 先看怎么得到切片,也就是前两个问题.切片的底层是数组,所以切片切的是数组:切的时候采用 ...
- go内建容器-数组
1.基础定义 声明时数组长度在数组成员类型前 语法:var variableName [length]int //基本定义 var array1 [3]int //定义并赋值 var array2 = ...
- golang内建容器
- C 语言函数手册:涵盖字符测试、字符串操作、内存管理、时间换算、数学计算、文件操作、进程管理、文件权限控制、信号处理、接口处理、环境变量、终端控制
1. 字符测试函数 函数 说明 isascii() 判断字符是否为ASCII码字符 2. 字符串操作 函数 说明 gcvt() 将浮点型数转换为字符串(四舍五入) index() 查找字符串并返回首次 ...
- 跟着老猫来搞GO-内建容器Map
前期回顾 在上面的文章中,老猫和大家分享了GO语言中比较重要的两种数据结构,一种是数组,另外一种是基于数组的slice.本篇文章想要继续和大家分享剩下的容器以及字符字符串的处理. MAP map的定义 ...
- 2017.7.12 Python的6种内建序列及操作
数据结构是通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构. 在Python中,最基本的数据结构是序列(sequence).序列中的 ...
- Python的6种内建序列之通用操作
数据结构式通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构.在Python中,最基本的数据结构是序列(sequence).序列中的每 ...
随机推荐
- sql 嵌套查询
sql 某一字段 数量大于1 SELECT * FROM ecm_goods_spec AWHERE ( SELECT count( * ) FROM ecm_goods_spec BWHERE A. ...
- NFS-heartbeat-drbd模拟NFS高可用
NFS介绍: NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NFS ...
- python+appium学习之swipe
#coding:utf-8 from appium import webdriver from time import sleep import random desired_caps={ " ...
- D3——散点图Scatterplot
散点图 //Width and height ; ; ; var dataset = [ [, ], [, ], [, ], [, ], [, ], [, ], [, ], [, ], [, ], [ ...
- jemter 使用if控制器,选择需要的内容
背景:需要根据人员传入的变量,来选择运行的环境,调用不同的参数,进行拼接,使用到if控制器 取到的数据,调用的就是test1的数据
- 手把手带你理解style
在写代码的时候,经常遇到自定义的style,有的用来设置属性,有的用来设置主题,搞的自己云里雾里,因此在心底暗暗发誓,等到空闲的时候,一定好好学学android中的style的究竟是个什么东西,到底有 ...
- 使用Fragment实现Tab效果
在上一篇中,我们将了使用ViewPager实现Tab效果.如果没有阅读过,可以点击下面的地址: http://www.cnblogs.com/fuly550871915/p/4849893.html ...
- MyBatis(8)延迟加载&缓存
什么是延迟加载? resultMap可以实现高级映射,association,collection具有延迟加载的功能. 当我们需要查询某个信息的时候,再去查询,达到按需查询,就是延迟加载 可以 ...
- Spring知识概括梳理
1. Spring 容器 http://blog.csdn.net/chenssy/article/details/8188570 2. Spring 注解 1)@Autowired http://b ...
- GIS中的空间参考
GIS一般都是研究的基于地球的某个区域,例如一个国家.省或市的情况,既然地球上都有经纬度来标识,那么直接用经纬度来标识物体的位置不可以吗?但如果应用不一样,在实际中选择的空间参考系也是不一样的.例如我 ...