golang 的strconv包常用方法

目录

[1. 字符串与整数的转换](#1. 字符串与整数的转换)

[2. 字符串与浮点数的转换](#2. 字符串与浮点数的转换)

[3. 布尔值的转换](#3. 布尔值的转换)

[4. 字符串的转义](#4. 字符串的转义)

[5. 补充:rune 类型的使用](#5. 补充:rune 类型的使用)

方法功能详解

代码示例:


1. 字符串与整数的转换
方法名称 功能描述 示例
Atoi 将字符串转换为十进制整数。 strconv.Atoi("123")
Itoa 将整数转换为十进制字符串。 strconv.Itoa(123)
ParseInt 将字符串解析为指定进制的整数。 strconv.ParseInt("520", 10, 64)
ParseUint 将字符串解析为指定进制的无符号整数。 strconv.ParseUint("FF", 16, 64)
FormatInt 将整数转换为指定进制的字符串。 strconv.FormatInt(520, 8)
FormatUint 将无符号整数转换为指定进制的字符串。 strconv.FormatUint(520, 8)
2. 字符串与浮点数的转换
方法名称 功能描述 示例
ParseFloat 将字符串解析为浮点数。 strconv.ParseFloat("3.1415926", 64)
FormatFloat 将浮点数转换为字符串,并格式化。 strconv.FormatFloat(3.1415926, 'f', 3, 32)
3. 布尔值的转换
方法名称 功能描述 示例
FormatBool 将布尔值转换为字符串 "true" 或 "false"。 strconv.FormatBool(true)
4. 字符串的转义
方法名称 功能描述 示例
Quote 返回带双引号的转义字符串。 strconv.Quote("hello world")
QuoteRuneToASCII 返回单个字符的转义表示,仅使用ASCII字符。 strconv.QuoteRuneToASCII('😊')
5. 补充:rune 类型的使用
方法名称 功能描述 示例
rune 表示单个 Unicode 码点。 var r rune = 'A'
FormatUint 转换为整数值查看 Unicode 码点。 fmt.Printf("Unicode code point of '世' is %U\n", '世')

方法功能详解

  1. 字符串与整数的转换

    • strconv.Atoi(s string) :将字符串 s 转换为十进制整数。如果转换成功,返回转换后的整数和 nil 错误;否则,返回 0 和非 nil 错误。
    • strconv.Itoa(i int) :将整数 i 转换为十进制字符串。
    • strconv.ParseInt(s string, base int, bitSize int) :将字符串 s 解析为指定 base 进制的整数,bitSize 参数可以是 0(表示整数是无符号的)、32 或 64,以指定结果的类型。如果 base 为 0,则自动检测进制(默认为十进制,但前缀为 "0x" 的字符串将被解释为十六进制)。
    • strconv.ParseUint(s string, base int, bitSize int) :功能与 ParseInt 类似,但用于无符号整数。
    • strconv.FormatInt(i int64, base int) :将整数 i 转换为指定 base 进制的字符串。
    • strconv.FormatUint(i uint64, base int) :将无符号整数 i 转换为指定 base 进制的字符串。
  2. 字符串与浮点数的转换

    • strconv.ParseFloat(s string, bitSize int) :将字符串 s 解析为浮点数,bitSize 为 32 或 64,以指定结果的类型(float32 或 float64)。
    • strconv.FormatFloat(f float64, format byte, precision, bitSize int)
      • format:表示格式,可以是 'f'(定点)、'e'(科学计数)、'g'(根据情况选择 'e' 或 'f')。
      • precision:决定结果的小数位数或科学计数法的位数。
      • bitSize:可以是 32 或 64,表示结果的类型。
  3. 布尔值的转换

    • strconv.FormatBool(b bool) :将布尔值 b 转换为字符串 "true" 或 "false"。
  4. 字符串的转义

    • strconv.Quote(s string):返回带双引号的字符串,并转义内部的特殊字符(如 \n、\t 等)。这在需要确保字符串在编程语言语境下正确表示时很有用。
    • strconv.QuoteRuneToASCII(r rune) :返回单个字符的转义表示,仅使用 ASCII 字符。对于 Unicode 字符,返回其十六进制转义形式,如 \U0001F60A
  5. rune 类型的使用

    • rune :是 Go 语言中用于表示单个 Unicode 码点的内置类型,可以直接赋值字符(如 var r rune = 'A')。
    • fmt.Printf("%U", r) :打印 Unicode 码点的完整表示,例如 U+0041 表示字符 'A'。

代码示例:

复制代码
package main

import (
	"fmt"
	"strconv"
)

func main() {
	n, _ := strconv.Atoi("123")
	fmt.Printf("%d\n", n)

	s1 := strconv.Itoa(123)
	fmt.Printf("%s\n", s1)

	// 字符串、进制、位数
	n2, _ := strconv.ParseInt("520", 10, 64)
	fmt.Printf("%d\n", n2)
	n3, _ := strconv.ParseUint("FF", 16, 64) // 将十六进制字符串"FF"转换为无符号整数
	fmt.Printf("%d\n", n3)

	//
	s2 := strconv.FormatBool(true)
	fmt.Println(s2) // "true"

	//
	s3 := strconv.FormatFloat(3.1415926, 'f', 3, 32)
	fmt.Println(s3)

	//
	s4 := strconv.FormatInt(520, 8)
	fmt.Println(s4)
	s4 = strconv.FormatUint(520, 8)
	fmt.Println(s4)

	//
	s5 := strconv.Quote("hello world")
	fmt.Println(s5) // `"hello world"` 返回带双引号的字符串

	//
	s6 := strconv.QuoteRuneToASCII('!') //单个rune
	fmt.Println(s6)                     // `'!'`

	var dst []byte
	dst = strconv.AppendQuoteRuneToASCII(dst, '😊')
	fmt.Println(string(dst)) // `\U0001F60A`

	// rune类型:rune 是一个内置类型,它是 int32 的别名,主要用于表示单个Unicode字符。
	// 这意味着 rune 可以存储任何Unicode码点(code point),包括所有的国际字符、符号以及表情符号等。
	// 直接定义一个rune变量
	var r rune = 'A'
	fmt.Printf("Type of r is %T and value is %c\n", r, r)
	// 遍历字符串中的rune
	str := "Hello, 世界"
	for _, r := range str {
		fmt.Printf("%c ", r) // 输出: H e l l o ,   世 界
	}
	fmt.Println()
	// 转换为整数值查看Unicode码点
	fmt.Printf("Unicode code point of '世' is %U\n", '世') // 输出: Unicode code point of '世' is U+4E16

}
相关推荐
女王大人万岁14 小时前
Go标准库 io与os库详解
服务器·开发语言·后端·golang
女王大人万岁16 小时前
Go语言time库核心用法与实战避坑
服务器·开发语言·后端·golang
Tony Bai17 小时前
【分布式系统】11 理论的试金石:用 Go 从零实现一个迷你 Raft 共识
开发语言·后端·golang
浮尘笔记18 小时前
Go语言并发安全字典:sync.Map的使用与实现
开发语言·后端·golang
小二·18 小时前
Go 语言系统编程与云原生开发实战(第3篇):企业级 RESTful API 开发 —— 中间件、验证、文档与权限控制
云原生·golang·restful
还在忙碌的吴小二19 小时前
Go-View 数据可视化大屏使用手册
开发语言·后端·信息可视化·golang
小二·21 小时前
Go 语言系统编程与云原生开发实战(第4篇):数据持久化深度实战 —— PostgreSQL、GORM 与 Repository 模式
postgresql·云原生·golang
女王大人万岁1 天前
Go标准库 path 详解
服务器·开发语言·后端·golang
LuminescenceJ1 天前
RPC通信中的Context上下文如何跨进程传递消息,gRPC为例分析
开发语言·网络·后端·网络协议·rpc·golang
码界奇点1 天前
基于Beego v2与Go语言的网站管理后台系统设计与实现
开发语言·golang·毕业设计·go语言·源代码管理·beego