go package 学习笔记 —— strconv(string与其他基本数据类型(int, float, bool)的转换)
strconv实现了go中基本数据类型与string之间的转换。
How to use in go
go doc:https://godoc.org/strconv
import "strconv"
int ↔ string
func Atoi(s string) (int, error)
将string类型的s转换为十进制int类型,同时会返回error。
func Itoa(i int) string
将十进制i转换为string类型。
// int ↔ string
stringValue := "150"
intValue, err := strconv.Atoi(stringValue)
if err != nil {
fmt.Printf("Failed to conv string to int: %s\n", err)
} else {
fmt.Printf("%T %s conv to %T %d\n", stringValue, stringValue, intValue, intValue) //string 150 conv to int 150
}
stringValue = strconv.Itoa(intValue)
fmt.Printf("%T %d conv to %T %s\n", intValue, intValue, stringValue, stringValue) //int 150 conv to string 150
int64 ↔ string
func ParseInt(s string, base int, bitSize int) (i int64, err error)
将string类型的s转换为base进制下bitSize比特的i,base的取值范围是{0}∪[2,36],bitSize的取值范围是[0,64]。当base=0时,字符串的前缀表示基数,比如“0x”表示十六进制,“0”表示八进制,其他表示十进制;当base=1 || base<0 || base>36,返回error。bitSize指定了整型的位数,bitSize=0,8,16,32和64分别对应了int,int8,int16,int32和int64。
func FormatInt(i int64, base int) string
将i转换为base进制下的string类型,base的的取值范围是[2,36]。
// int64 ↔ string
int64Value, err := strconv.ParseInt(stringValue, 10, 64)
if err != nil {
fmt.Printf("Failed to conv string to int64: %s\n", err)
} else {
fmt.Printf("%T %s conv to %T %d\n", stringValue, stringValue, int64Value, int64Value) //string 150 conv to int64 150
}
stringValue = strconv.FormatInt(int64Value, 10)
fmt.Printf("%T %d conv to %T %s\n", int64Value, int64Value, stringValue, stringValue) //int64 150 conv to string 150
uint64 ↔ string
func ParseUint(s string, base int, bitSize int) (uint64, error)
ParseUint的用法与ParseInt相同,返回的结果是uint64类型。
func FormatUint(i uint64, base int) string
将uint64类型按照给定base转换为string类型,base的取值范围是[2,36]。
// uint64 ↔ string
uint64Value, err := strconv.ParseUint(stringValue, 10, 64)
if err != nil {
fmt.Printf("Failed to conv string to uint64: %s\n", err)
} else {
fmt.Printf("%T %s conv to %T %d\n", stringValue, stringValue, uint64Value, uint64Value) //string 150 conv to uint64 150
}
stringValue = strconv.FormatUint(uint64Value, 10)
fmt.Printf("%T %d conv to %T %s\n", uint64Value, uint64Value, stringValue, stringValue) //uint64 150 conv to string 150
float64 ↔ string
func ParseFloat(s string, bitSize int) (float64, error)
ParseFloat将字符串s转换为浮点数,精度由bitSize指定,bitSize=32转换为float32,64转换为float64。 当bitSize = 32时,结果仍然是float64类型,但不改变值就可以转换为float32。
func FormatFloat(f float64, fmt byte, prec, bitSize int) string
FormatFloat根据格式fmt和精度prec将浮点数f转换为字符串。
格式fmt取值有几种,'b'表示二进制指数( - ddddp±ddd),'e'表示十进制指数( - d.dddde±dd),'E'表示十进制指数(- ddddd±dd),'f'表示无指数(- ddd.dddd),'g'表示对于大指数使用格式'e',否则使用'f','G'表示对于大指数使用格式'E',否则使用'f'。
精度是由格式'e','E','f','g'和'G'控制。 对于'e','E'和'f',是小数点后的位数。 对于'g'和'G',是最大有效位数(删除末尾的零)。当prec=-1时,表示使用所需的最小位数。
// float64 ↔ string
float64Value,err:=strconv.ParseFloat("3.1415926535",64)
if err !=nil{
fmt.Printf("Failed to conv string to float64: %s",err)
}else{
fmt.Printf("%T %s conv to %T %v\n","3.1415926535","3.1415926535",float64Value,float64Value) //string 3.1415926535 conv to float64 3.1415926535
}
stringValue=strconv.FormatFloat(float64Value,'E',-1,64)
fmt.Printf("%T %v conv to %T %s\n",float64Value,float64Value,stringValue,stringValue) //float64 3.1415926535 conv to string 3.1415926535E+00
bool ↔ string
func ParseBool(str string) (bool, error)
返回string类型的str表示的bool值,str∈{1,t,T,TRUE,true,True,0,f,F,FALSE,false,False},如果str是其他值,函数返回error。
func FormatBool(b bool) string
根据b的值返回“true”或“false”。
// bool ↔ string
boolValue, err := strconv.ParseBool("true")
if err != nil {
fmt.Printf("Failed to conv string to bool: %s\n", err)
} else {
fmt.Printf("%T %s conv to %T %v\n", "true", "true", boolValue, boolValue) //string true conv to bool true
}
stringValue = strconv.FormatBool(boolValue)
fmt.Printf("%T %v conv to %T %s\n", boolValue, boolValue, stringValue, stringValue) //bool true conv to string true
go package 学习笔记 —— strconv(string与其他基本数据类型(int, float, bool)的转换)的更多相关文章
- Python学习笔记 (2.1)标准数据类型之Number(数字)
Python3中,数字分为四种——int,float,bool,complex int(整型) 和数学上的整数表示没啥区别,没有大小限制(多棒啊,不用写整数高精了),可正可负.还可表示16进制,以 0 ...
- C++string,char* 字符数组,int类型之间的转换
string.int 常见类型之间相互转换 int & string 之间的转换 C++中更多的是使用流对象来实现类型转换 针对流对象 sstream实现 int,float 类型都可以实现 ...
- Redis学习笔记(2)-String
package cn.com; import java.util.List; import redis.clients.jedis.Jedis; public class Redis_String { ...
- JavaScript学习笔记之string
字符串定义: 1,var myString=“内容”:or var myString=‘内容’ 2,var myString= new String(“内容”) ---〉创建对象, ...
- HTML 学习笔记 JavaScript (String)
String对象用于存储字符串的数据.这里我们做了JavaScript的String字符串对象常用操作总结. 创建String对象的方式 声明:String 对象的方法也可以在所有基本字符串值中访问到 ...
- Thinking in java学习笔记之String的不可变性
为了提高效率,可以使用StringBuffer或StringBuilder 1. 在执行速度方面的比较:StringBuilder > StringBuffer 2. StringBuffer与 ...
- Java学习笔记 02 String类、StringBuilder类、字符串格式化和正则表达式
一.String类一般字符串 声明字符串 >>String str 创建字符串 >>String(char a[])方法用于将一个字符数组创建为String对象 >> ...
- C++学习笔记(六):复杂数据类型(string、容器和STL)
STL 即Standard Template Library(标准模板库),由于C++自带的数据类型过于简单,并不能满足我们的使用需要,而STL作为C++标准的内置库为我们编写好了多种高效的数据结构和 ...
- java学习笔记之String类
String类总结 String类概述: java.lang.String 类是字符串操作类 String类的常用构造方法: //1.直接赋值 String str= "hellojava& ...
随机推荐
- 关于QGIS打开SHP文件属性表乱码
解决方案是从网上看到的,一个台湾的朋友给出了具体的解决方法.但他说的方法的最后一步对我来说不适用,我稍作修改 具体如下:在线安装插件:Shapefile Encoding Fixer. 加载shp文件 ...
- NDK开发之<cpu-features.h模块功能>
今天研究下cpufeatures库,它是一个轻量级的展示CPU特性的模块,调用者在运行时候可以根据这个库提供的简单接口获取到目标机的CPU架构和特性. 一.代码路径: $NDK_ROOT/source ...
- awk使用和详解
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...
- Java IO: 异常处理
原文链接 作者:Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 流与Reader和Writer在结束使用的时候,需要正确地关闭它们.通过调用close()方法 ...
- 吴裕雄--天生自然HTML学习笔记:HTML 表格
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- babel-loader的原理
本文转载自默语的博客. Babel包的构成 核心包 babel-core:是babel转译器本身,提供转译的API,例如babel.transform等,webpack的babel-loader就是调 ...
- <USACO09DEC>过路费Cow Toll Pathsの思路
啊好气 在洛谷上A了之后 隔壁jzoj总wa 迷茫了很久.发现那题要文件输入输出 生气 肥肠不爽 Description 跟所有人一样,农夫约翰以着宁教我负天下牛,休叫天下牛负我的伟大精神,日日夜夜苦 ...
- django中间件和auth模块
Django中间件 由django的生命周期图我们可以看出,django的中间件就类似于django的保安,请求一个相应时要先通过中间件才能到达django后端(url.views.template. ...
- python中字符串操作--截取,查找,替换
python中,对字符串的操作是最常见的,python对字符串操作有自己特殊的处理方式. 字符串的截取 python中对于字符串的索引是比较特别的,来感受一下: s = '123456789' #截取 ...
- 瑞士一苹果店内iPhone突然爆炸致7人入院,iPhone还值得买吗?
与国产手机高歌猛进态势呈现"最萌发展差"的,是以三星.苹果为代表的海外手机厂商在过去一年的疲态.数据显示,2017年小米手机产量较2016年增长幅度达76%,OPPO和vivo则分 ...