第五章 九析带你轻松完爆 go - 字符串操作

九析 · · 488 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

目录

1 前言

2 字符串操作

    2.1 字符串声明与赋值

    2.2 字符串长度

    2.3 字符串轮询

    2.4 字符串中字符替换


1 前言

        如果你对博客有任何疑问或者想更深入学习 go,请加微信群,我们一起进步:

1.jpeg


2 字符串操作

2.1 字符串声明与赋值

        字符串声明和赋值使用 := 操作符。代码如下:

package main


import "fmt"


func main() {

     s := "hello jiuxi"

     fmt.Println(s)

}

2.2 字符串长度

        获取字符串长度可以使用函数 len()。但是英文字符和中文字符 len() 的处理结果不同,英文字符长度为 1,中文字符长度为 3。代码如下:

package main


import "fmt"


func main() {

     enStr := "h"

     cnStr := "九"


     fmt.Printf("the length of enStr is: %d\n", len(enStr))

     fmt.Printf("the length of cnStr is: %d\n", len(cnStr))

}

        输出结果为:

the length of enStr is: 1

the length of cnStr is: 3

2.3 字符串轮询

        字符串常用的场景之一是轮询字符串并获取其中的字符,但是根据 2.2 所述,中英文字符 len() 值不同,因此容易导致 bug 产生,如下代码所示:

package main


import "fmt"


func main() {

     str := "hello 九析"


     for i := 0; i < len(str); i++ {

          fmt.Println(str[i])

     }

}

        本来希望打印 "hello 九析",但是实际结果却打印出乱码:image2.png

        正确使用方式如下:

package main


import "fmt"


func main() {

     str := "hello 九析"

     for _, c := range str {

          fmt.Printf( "%c", c )

    }

}

2.4 字符串中字符替换

        比如想将“九析”变成“八析”该如何操作?代码如下:

package main


import "fmt"


func main() {

     srcStr := "九析"

     tar := []rune( srcStr )     # 将字符串 strStr 切片,类似 java 的 split

     tar[0] = '八'                # 操作符是 =。因为 = 是赋值,而 := 是变量定义赋值

     fmt.Println( string( tar ) )  # 不能直接输出 tar,必须经过强制字符串转换

}

        自此,九析带你轻松完爆了基本字符串操作。


有疑问加站长微信联系(非本文作者)

本文来自:51CTO博客

感谢作者:九析

查看原文:第五章 九析带你轻松完爆 go - 字符串操作

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

488 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传