Go菜鸟笔记:第六章 字符串

举报
宇宙之一粟 发表于 2022/01/14 23:53:10 2022/01/14
【摘要】 字符串 本章讲解Go语言的字符串类型 一、定义 字符串可以使用 双引号(" ")或者 反引号(` `)来创建。双引号用来创建可解析的字符串,但不能用来引用多行,这也是大多数字符串的定义方式。 反引...

字符串

本章讲解Go语言的字符串类型

一、定义

字符串可以使用 双引号(" ")或者 反引号(` `)来创建。双引号用来创建可解析的字符串,但不能用来引用多行,这也是大多数字符串的定义方式。

反引号用来创建原生的字符串,这些字符串可以由多行组成。多用于多行消息,HTML以及正则表达式。

package main

import "fmt"

func main() {

	shortString := "Hello, World!"
	hello := "你好,世界!"
	longString := `
	Hello, 
	my friend
	.This is a long string`
	fmt.Println(shortString)
	fmt.Println(hello)
	fmt.Println(longString)
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

运行输出结果

二、拼接操作

字符串支持拼接操作,使用“ + ”操作符将两个字符串拼接起来

str1 := "Hello"
str2 := "world"
str3 := str1 + str2
fmt.Println(str3)

  
 
  • 1
  • 2
  • 3
  • 4

如果想要创建一个长的可解析字符串变量,但又不想在代码中写同意长的一行,也可以使用“ + ”拼接符将这些片段连接起来。还有,Go语言的字符串是不可变的,但它们支持“ += ”追加操作符。

text := "the very things that in the moment dampen our moods " +
		"can later be sources of intense gratification"

text += " and delight."

fmt.Println(text)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

三、使用fmt包来格式化字符串

​ fmt包中的打印函数

语法 含义
fmt.Errorf(format, args…) 返回一个包含所给定的格式化字符串以及args参数的错误值
fmt.Fprint(writer, args…) 按照格式%v和空格分隔的非字符串将args写入writer中,返回写入的字节数和一个值为error或者nil的错误值
fmt.Fprintf(writer, format, args…) 按照字符串格式format将args参数写入writer,返回写入的字节数和一个值为error或者nil的错误值
fmt.Fprintln(writer, args…) 按照格式%v以空格分隔的非字符串将args写入writer,返回写入的字节数和一个值为error或者nil的错误值
fmt.Print(format, args…) 按照格式%v以空格分隔的非字符串将args写入os.Stdout,返回写入的字节数和一个值为error或者nil的错误值
fmt.Printf(format, arg…) 使用格式化字符串format将args写入os.Stdout,返回写入的字节数和一个值为error或者nil的错误值
fmt.Println(format, arg…) 按照格式%v以空格分隔以换行符结尾将参数args写入os.Stdout,返回写入的字节数和一个值为error或者nil的错误值
fmt.Sprint(args…) 返回args参数组成的字符串,每个参数都使用%v进行格式化的使用空格分离的非字符串
fmt.Sprintf(format,args…) 返回使用格式format格式化的args字符串
fmt.Sprintln(args) 返回使用格式%v格式化args后的字符串,以空格分隔以换行符结尾
str4 := fmt.Sprintf("%s %s", str1, str2)
fmt.Println(str4)

  
 
  • 1
  • 2

四、strconv包

strconv包提供了字符串和其他类型的数据之间进行转换的函数:

strconv.ParseInt(s, base, bits): 如果s能够转换成一个整数,则返回int64值和nil,否则返回0和error;如果base为0,则表示要从s中判断进制的大小。

其他参考package strconv

	// string to numeric
	fmt.Println("---- demo String To Numeric----")
	str1_val1 := "5"
	str2_val2 := "2.8769"

	var err error
	var int_val1 int64
	int_val1, err = strconv.ParseInt(str1_val1, 10, 32) 	// base10, 64 size
	if err == nil {
		fmt.Println(int_val1)
	} else {
		fmt.Println(err)
	}

	var float_val2 float64
	float_val2, err = strconv.ParseFloat(str2_val2, 64)		// 64 size
	if err == nil {
		fmt.Println(float_val2)
	} else {
		fmt.Println(err)
	}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

五、测试代码

package main

import (
	"fmt"
	"strconv"
)

func main() {
	// 拼接字符串
	str1 := "Hello"
	str2 := "world"
	str3 := str1 + str2
	fmt.Println(str3)

	str4 := fmt.Sprintf("%s %s", str1, str2)
	fmt.Println(str4)

	text := "the very things that in the moment dampen our moods " +
		"can later be sources of intense gratification"

	text += " and delight."

	fmt.Println(text)

	// 字符串转换我数字类型
	fmt.Println("---- demo String To Numeric----")
	str1_val1 := "5"
	str2_val2 := "2.8769"

	var err error
	var int_val1 int64
	int_val1, err = strconv.ParseInt(str1_val1, 10, 32) 	// base10, 64 size
	if err == nil {
		fmt.Println(int_val1)
	} else {
		fmt.Println(err)
	}

	var float_val2 float64
	float_val2, err = strconv.ParseFloat(str2_val2, 64)		// 64 size
	if err == nil {
		fmt.Println(float_val2)
	} else {
		fmt.Println(err)
	}

	// 数字类型转字符串
	fmt.Println("---- demo numeric to string ----")
	num1 := 8
	num2 := 5.872

	var str_num1 string
	str_num1 = fmt.Sprintf("%d", num1)
	fmt.Println(str_num1)

	var str_num2 string
	str_num2 = fmt.Sprintf("%f", num2)
	fmt.Println(str_num2)
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59

六、运行代码并查看结果

文章来源: blog.csdn.net,作者:宇宙之一粟,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/yuzhou_1shu/article/details/103679781

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。