Go 字符串

举报
宇宙之一粟 发表于 2022/01/15 01:30:29 2022/01/15
【摘要】 本章讲解Go语言的字符串类型 一、定义 字符串可以使用 双引号(" ")或者 反引号(` `)来创建。双引号用来创建可解析的字符串,但不能用来引用多行,这也是大多数字符串的定义方式。 反引号用来创建原生的字符串,这些字符串可以由多行组成。多用于多行消息,HTML以及正则表达式。 ...

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

一、定义

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

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

package mainimport "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)}
        

运行输出结果

Go 字符串_字节数

二、拼接操作

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

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

如果想要创建一个长的可解析字符串变量,但又不想在代码中写同意长的一行,也可以使用“ + ”拼接符将这些片段连接起来。还有,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)
        

三、使用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)
        

四、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)    }
        

五、测试代码

package mainimport (    "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)}
        

六、运行代码并查看结果

Go 字符串_go_02

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

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

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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