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).序列中的每 ...
随机推荐
- QT的动画效果 抖动 下坠 透明 最近在开发QT收藏了好多链接
http://blog.csdn.net/liang19890820/article/details/51888114
- selenium借助send_keys实现上传(以网易邮箱为例)
#code:utf-8from selenium import webdriverimport time#网易163邮箱dr = webdriver.Firefox()file_path = 'htt ...
- IDEA 搭建Java WEB 开发环境
本文是一篇讲解如何在 目前比较流行的IntellJ IDEA 下搭建JavaWEB的说明文档, 如有写的不详细的地方,希望各位留下自己宝贵的意义. Tips : 遇到的问题 , 请耐心看完文章,在文章 ...
- wampserver 最新版本 mysql修改数据库密码
由于wampsever版本更新就导致以前版本的密码修改造成失败,主要是密码字段改变造成的! 第一步 进入MySQL 控制台 wamp安装,数据库是没有密码 进入控制台直接回车就可以了 第二步 使用 ...
- REG小探
根键名称缩写对照表 常用数据类型
- 如何创建.gitignore文件
为什么要创建.gitignore文件? 因为.gitignore可以排除提交时携带的不必要文件,比如Java中的.class文件.同时还可以排除其他不想提交或者提交没这个必要的文件等等. 创建步骤如下 ...
- 以EF形式操作mysql数据库
1.引入Nuget包: 2.书写EF操作上下文 public class MySqlContext:DbContext { protected override void OnConfiguring( ...
- File常见操作函数
String Name = File.getName(); //获得文件或文件夹的名称: String parentPath = File.getParent(); //获得文件或文件夹的父目录 ...
- 一招搞定css页面布局
如何做出漂亮的页面: 1. 多写页面,多改. 2. 多写页面,多改. 3. 多写页面,多改. 大致的思想步骤: 写页面的时候先规划好大致的分块,无论是用定位或者浮动,首先要确定要应用的场景,使用完浮动 ...
- CSS-自定义变量
使用背景: 一些常见的例子: 为风格统一而使用颜色变量 一致的组件属性(布局,定位等) 避免代码冗余 *更方便的从CSS向JS传递数据(例如媒体断点) 为什么使用: 以下几点是未来CSS属性的简短说明 ...