前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第七章 字符串

第七章 字符串

作者头像
宇宙之一粟
发布2020-10-26 10:16:21
2610
发布2020-10-26 10:16:21
举报
文章被收录于专栏:宇宙之_一粟

字符串

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

一、定义

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

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

代码语言:javascript
复制
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)
}

运行输出结果

二、拼接操作

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

代码语言:javascript
复制
str1 := "Hello"
str2 := "world"
str3 := str1 + str2
fmt.Println(str3)

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

代码语言:javascript
复制
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后的字符串,以空格分隔以换行符结尾

代码语言:javascript
复制
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

代码语言:javascript
复制
    // 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)
    }

五、测试代码

代码语言:javascript
复制
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)
}

六、运行代码并查看结果

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 字符串
    • 一、定义
      • 运行输出结果
    • 二、拼接操作
      • 三、使用fmt包来格式化字符串
        • 四、strconv包
          • 五、测试代码
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档