zoukankan      html  css  js  c++  java
  • Golang字符串

    字符串在任何开发语言中都非常重要,处理好字符串在日常开发中占有非常大的比重,也是是否熟练掌握一门语言的标志

    一、字符串基础

    1、Go字符串底层就是Byte数组

    2、在golang中,字符,字符串中打印单个字符的本质就是一个整数,是该字符对应的utf-8编码的码值

    平时开发过程中遍历字符串情况时常有,不过要注意中文:

    package main
    
    import "fmt"
    
    func main() {
    	var s string = "123hello你好"
    	var b []byte = []byte(s)
    	var r []rune = []rune(s)
    	// 使用[]byte, 如果字符串中有中文将会出现乱码
    	for i := 0; i < len(b); i++ {
    		fmt.Printf("%c", s[i])
    	}
    	fmt.Println()
    	// 用range循环字符串类型则不会有乱码
    	for _, v := range s {
    		fmt.Printf("%c", v)
    	}
    	fmt.Println()
    	// 转为rune来存储用for循环也不会有乱码
    	for i := 0; i < len(r); i++ {
    		fmt.Printf("%c", r[i])
    	}
    	fmt.Println()
    	// 来看看底层, byte数组里最大只能存储256,如果是汉字,编码超过了256,于是就分开存储了
    	fmt.Println(b)  // [49 50 51 104 101 108 108 111 228 189 160 229 165 189]
    	// rune是int32 可以存储的下,所以不会有问题
    	fmt.Println(r)  // [49 50 51 104 101 108 108 111 20320 22909]
    }
    

      

    输出结果:

    123hello你好
    123hello你好
    123hello你好
    [49 50 51 104 101 108 108 111 228 189 160 229 165 189]
    [49 50 51 104 101 108 108 111 20320 22909]

    二、字符串拼接  

    字符串拼接在开发过程中高频率出现,golang中有好几种拼接字符串方法,不同场景使用不同的方法:

    package main
    
    import (
    	"bytes"
    	"fmt"
    	"strings"
    )
    
    func main() {
    	x := "hello"
    	// 使用+号
    	fmt.Println(x + " world")
    	// 如果字符串后要拼接其他类型,使用Sprintf
    	x = fmt.Sprintf("%s%d", x, 100)
    	fmt.Println(x)
    	// 如果要高性能使用bytes.Buffer
    	var stringBuffer bytes.Buffer
    	stringBuffer.WriteString(x)
    	stringBuffer.WriteString("hello world")
    	fmt.Println(stringBuffer.String())
    	// 如果是数组转字符串用join
    	arrStr := []string{"a", "b", "c"}
    	s := strings.Join(arrStr, "-")
    	fmt.Println(s)
    }
    

      

    输出:

    hello world
    hello100
    hello100hello world
    a-b-c

  • 相关阅读:
    class 类添加属性
    Ajax请求数据data被JSON.stringify()的数据django解码过程
    Python之浏览器的前进或后退
    滚动条-智能等待-富文本
    Python之阶乘代码
    Python之用型号构成一个三角形代码
    C# Dictionary
    使用C#创建Windows服务
    sql取出每月最早的上报的数据
    mvc NPOI导入读取Excel文件
  • 原文地址:https://www.cnblogs.com/scofi/p/12636652.html
Copyright © 2011-2022 走看看