Go语言学习笔记(九)

一、使用字符串

Go语言支持两种创建字符串字面量的方法

  1. 解释型字符串字面量是用双引号括起的字符,在这里面还包括了rune字面量,rune字面量可将解释型字符串字面量分成多行,还可以在其中包含制表符合其他格式选项。
  2. 原始字符串字面量是用反引号括起,如`hello`。不同于解释型字符串,原始字符串中的反斜杠没有特殊含义(原始字符串不支持转义字符),Go按原样解释这种字符串。通过使用原始字符串字面量,无需使用反斜杠就能生成和解释型字面量同样的输出。

1 创建字符串字面量

	s := "I am an interpreted string literal"
	fmt.Println(s)

就是双引号包围的字符串

2 rune字面量

在这里插入图片描述
就是转义字符

通过使用rune字面量可以对字符串字面量进行格式划分(不是格式化输出),但实际上,不适用rune字面量也能达到相同的效果。
在如下实例中,我们仅仅使用了原始的字符串字面量
在这里插入图片描述>输出结果如下:
在这里插入图片描述
在上面的例子中,我们并没有使用rune字面量,同样达到了我们想要的输出结果和格式,这说明Go语言支持隐形的\n等字符

3 拼接字符串

注意++=
同样的,Go语言不支持非字符串类型的拼接,辣么应该肿么办呢,我们可以使用strconv包中的Itoa方法完成字符串类型的转换

package main

import (
	"fmt"
	"strconv"
)

func main() {
	var i int = 1
	var s string = " egg"
	intTostring := strconv.Itoa(i)
	var breakfast string = intTostring + s
	fmt.Println(breakfast)//输出:1 egg
}


3.1使用缓冲区拼接字符

  1. 当我们对少量的字符串进行拼接时,可以使用运算符进行操作,但是如果是数量很多的字符串进行拼接,使用操作符的效率并不高。
  2. 如果需要在循环中拼接字符串,则使用空的字节缓冲区来拼接的效率会更高。
package main
import (
	"bytes"
	"fmt"
)
func main() {
	var buffer bytes.Buffer
	fmt.Printf("%+v\n", buffer)//{buf:[] off:0 lastRead:0}
	for i := 0; i < 10; i++ {
		buffer.WriteString("z")
	}
	fmt.Println(buffer.String())//zzzzzzzzzz
}

3.3 处理字符串

对字符串的处理基于strings包中提供的函数

3.3.1 将字符串转换为小写

函数ToLower接受一个字符串作为参数,并将其中所有的大写字符全部转换为小写
使用方法strings.ToLower(字符串),返回一个全部是小写字母的字符串

3.3.2 查找子串

方法Index,找到子串返回第一个子串的索引号,否则返回-1
使用方法:strings.Index(string,substring)

3.3.3 删除字符串中开头和结尾的空格

TrimSpace方法,使用方法和3.3.1中的一样,这里要注意的是删除之后len(变量名)会发生改变

4 相关问题

  1. Go语言支持UTF-8,能在代码中使用除英语以外的其他语言么?
    废话,当然行了。Go语言代码被解读为UTF-8,这意味着函数和方法的名称可包含UTF-8支持的任何字符(有点强)
  2. 创建字符串后,可以对其进行修改吗?
    不行。因为字符串相当于是C++中的常量,你见过修改常量的??
参考书籍
 [1]: 【Go语言入门经典】[英] 乔治·奥尔波 著 张海燕 译
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是兔不是秃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值