golang 的strconv包常用方法

news2025/4/1 21:12:08

目录

1. 字符串与整数的转换

2. 字符串与浮点数的转换

3. 布尔值的转换

4. 字符串的转义

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

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2325179.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java高级JVM知识点记录,内存结构,垃圾回收,类文件结构,类加载器

JVM是Java高级部分,深入理解程序的运行及原理,面试中也问的比较多。 JVM是Java程序运行的虚拟机环境,实现了“一次编写,到处运行”。它负责将字节码解释或编译为机器码,管理内存和资源,并提供运行时环境&a…

【STL】queue

q u e u e queue queue 是一种容器适配器,设计为先进先出( F i r s t I n F i r s t O u t , F I F O First\ In\ First\ Out,\ FIFO First In First Out, FIFO)的数据结构,有两个出口,将元素推入队列的操作称为 p u …

20250330-傅里叶级数专题之离散时间傅里叶变换(4/6)

4. 傅里叶级数专题之离散时间傅里叶变换 20250328-傅里叶级数专题之数学基础(0/6)-CSDN博客20250330-傅里叶级数专题之傅里叶级数(1/6)-CSDN博客20250330-傅里叶级数专题之傅里叶变换(2/6)-CSDN博客20250330-傅里叶级数专题之离散傅里叶级数(3/6)-CSDN博客20250330-傅里叶级数专…

漏洞挖掘---迅饶科技X2Modbus网关-GetUser信息泄露漏洞

一、迅饶科技 X2Modbus 网关 迅饶科技 X2Modbus 网关是功能强大的协议转换利器。“X” 代表多种不同通信协议,能将近 200 种协议同时转为 Modbus RTU 和 TCP 服务器 。支持 PC、手机端等访问监控,可解决组态软件连接不常见控制设备难题,广泛…

网络安全之前端学习(css篇2)

那么今天我们继续来学习css,预计这一章跟完后,下一章就是终章。然后就会开始js的学习。那么话不多说,我们开始吧。 字体属性 之前讲到了css可以改变字体属性,那么这里来详细讲一讲。 1.1字体颜色 之前讲到了对于字体改变颜色食…

PS底纹教程

1.ctrlshiftU 去色 2.新建纯色层 颜色中性灰;转换为智能对象 3.纯色层打开滤镜(滤镜库); 素描下找到半调图案,数值调成大小5对比1; 再新建一层,素描下找到撕边,对比拉到1&#x…

解决pyinstaller GUI打包时无法打包图片问题

当我们的python GuI在开发时。经常会用到图片作为背景,但是在打包后再启动GUI后却发现:原先调试时好端端的背景图片竟然不翼而飞或者直接报错。这说明图片没有被pyinstaller一起打包…… 要解决这个问题很简单,就是更改图片的存储方式。 tk…

蓝桥杯真题------R格式(高精度乘法,高精度加法)

对于高精度乘法和加法的同学可以学学这几个题 高精度乘法 高精度加法 文章目录 题意分析部分解全解 后言 题意 给出一个整数和一个浮点数,求2的整数次幂和这个浮点数相乘的结果最后四舍五入。、 分析 我们可以发现,n的范围是1000,2的1000次方非常大&am…

Nginx — Nginx安装证书模块(配置HTTPS和TCPS)

一、安装和编译证书模块 [rootmaster nginx]# wget https://nginx.org/download/nginx-1.25.3.tar.gz [rootmaster nginx]# tar -zxvf nginx-1.25.3.tar.gz [rootmaster nginx]# cd nginx-1.25.3 [rootmaster nginx]# ./configure --prefix/usr/local/nginx --with-http_stub_…

回调后门基础

回调后门概述 回调后门(Reverse Shell)是一种常见的攻击方式,攻击者通过受害主机主动连接到远程服务器(攻击者控制的机器),从而获得远程控制权限。 工作原理 受害者主机 运行一个恶意代码,尝…

深度学习 Deep Learning 第13章 线性因子模型

深度学习 Deep Learning 第13章 线性因子模型 内容概要 本章深入探讨了线性因子模型,这是一类基于潜在变量的概率模型,用于描述数据的生成过程。这些模型通过简单的线性解码器和噪声项捕捉数据的复杂结构,广泛应用于信号分离、特征提取和数…

【个人笔记】用户注册登录思路及实现 springboot+mybatis+redis

基本思路 获取验证码接口 验证码操作用了com.pig4cloud.plugin的captcha-core这个库。 AccountControl的"/checkCode"接口代码,通过ArithmeticCaptcha生成一张验证码图片,通过text()函数得到验证码的答案保存到变量code,然后把图…

聚类(Clustering)基础知识3

文章目录 一、聚类的性能评价1、聚类性能评价(1)聚类性能评价方法: 2、参考模型 (reference model)(1)数据集:(2)聚类结果:(3)参考模型&#xff1…

RK3588使用笔记:设置程序/服务开机自启

一、前言 一般将系统用作嵌入式设备时肯定要布置某些程序,这时候就需要对程序设置开机自己,否则每次都要人为启动,当有些嵌入式系统未连接显示屏或者无桌面环境去操作启动程序时,程序自启就是必须的了,本文介绍在纯li…

python实现股票数据可视化

最近在做一个涉及到股票数据清洗及预测的项目,项目中需要用到可视化股票数据这一功能,这里我与大家分享一下股票数据可视化的一些基本方法。 股票数据获取 目前,我已知的使用python来获取股票数据方式有以下三种: 爬虫获取,实现…

JavaScript DOM与元素操作

目录 DOM 树、DOM 对象、元素操作 一、DOM 树与 DOM 对象 二、获取 DOM 元素 1. 基础方法 2. 现代方法(ES6) 三、修改元素内容 四、修改元素常见属性 1. 标准属性 2. 通用方法 五、通过 style 修改样式 六、通过类名修改样式 1. className 属…

ARM向量表

向量表作用说明RVBAR在 AArch64 中,重置向量不再是异常向量表的一部分。 有复位向量的专用配置输入引脚和寄存器。在 AArch64 中,处理器从 IMPLEMENTAION‑DEFINED 地址开始执行, 该地址由硬件输入引 脚RVBARADDR定义, 可以通过 R…

leetcode刷题日记——除自身以外数组的乘积

[ 题目描述 ]: [ 思路 ]: 题目要求获取数组中每个元素除自己以外的各元素的乘积最简单的方法就是算出数组所有元素的乘积,然后除以自身,即可得到除自身外各元素的乘积 但要考虑到其自身为0的情况,即当期自身为0时&am…

【信奥一本通提高篇】基础算法之贪心算法

原文 https://bbs.fmcraft.top/blog/index.php/archives/22/ 贪心算法 概述 近年来的信息学竞赛试题,经常出现求一个问题的可行解或最优解的题目。这类问题就是我们通常所说的最优化问题。贪心算法是求解这类问题的一种常用算法。在众多的算法中,贪心…

PyQt6实例_批量下载pdf工具_批量pdf网址获取

目录 前置: 步骤: step one 安装包 step two 获取股票代码 step three 敲代码,实现 step four 网址转pdf网址 视频 前置: 1 本系列将以 “PyQt6实例_批量下载pdf工具”开头,放在 【PyQt6实例】 专栏 2 本节讲…