golang string转int8_Go教程:23 string转换int类型方法对比
Go教程:23 string转换int类型方法对比
Go语言时一个强类型的语言,但是强类型的语言有也强类型的语言的烦恼.这个烦恼就是类型转换,
接下来我们就讲解一下怎么把 string 类型变量转换成 integer 类型变量.
1. 性能最佳的方式: strconv.ParseInt(…)
strconv 包实现了字符串与数字(整数,浮点数等)之间的互相转换.
strconv.ParseInt()的bitSize参数不会将字符串转换为您选择的类型,
而只是在此处将结果限制为特定的“位”,如果想要得到您要的int类型必须手动转换类型.
转换成十进制int64strconv.ParseInt("2345",10,64)
转换成八进制int32strconv.ParseInt("0xFF",0,32)
转换成16进制int64strconv.ParseInt("FF",16,64)
packagemainimport("fmt""strconv")funcmain(){fmt.Println(strconv.ParseInt("-12",10,0))// -12 fmt.Println(strconv.ParseInt("0xFF",0,0))// 255 fmt.Println(strconv.ParseInt("FF",16,0))// 255 fmt.Println(strconv.ParseUint("12",10,0))// 12 fmt.Println(strconv.ParseInt("0xFF",10,0))// 0 strconv.ParseInt: parsing "0xFF": invalid syntaxfmt.Println(strconv.ParseUint("-12",10,0))// 0 strconv.ParseUint: parsing "-12": invalid syntax}
输结果
-12
255
255
12
0 strconv.ParseInt: parsing "0xFF": invalid syntax
0 strconv.ParseUint: parsing "-12": invalid syntax
2. 最灵活性的方法: fmt.Sscanf(…)
fmt.Sscanf为格式字符串提供了更大的灵活性,
您可以在输入中指定数字格式(例如宽度,基数等)以及其他额外的字符string,
这对于解析包含数字的自定义字符串非常有用,例如,如果以”id:00123”您有前缀的形式提供输入,
“id:”并且数字固定为5位数字,如果较短则用零填充,这很容易解析,如下所示:
s:="id:00123"variintif_,err:=fmt.Sscanf(s,"id:%5d",&i);err==nil{fmt.Println(i)// Outputs 123}
3. 性能还行的方法: strconv.Atoi(…)
strconv 包实现了字符串与数字(整数,浮点数等)之间的互相转换.
很多朋友都不知道Atoi代表什么意思, A 就是ASCII, i就是integer,所以Atoi= ASCII to integer.
ItoA= Integer to ASCII.
实际上strconv.Atoi 还是调用 strconv.ParseInt
packagemain//xiaorui.ccimport("strconv")funcmain(){i,err:=strconv.Atoi("8888")iferr!=nil{panic(err)}i+=3println(i)s:=strconv.Itoa(333)s+="3"println(s)}
4. 三种方法benchmark
atoi_test.go
packagemainimport"fmt"import"strconv"import"testing"varnum=8568452varnumstr="8568452"//测试 strconv.ParseIntfuncBenchmarkStrconvParseInt(b*testing.B){num64:=int64(num)fori:=0;i
执行benchmark: go test -bench=. atoi_test.go
ns/op 代表每次操作消耗多少纳秒.
BenchmarkStrconvParseInt-810000000017.1ns/opBenchmarkAtoi-810000000019.4ns/opBenchmarkFmtSscan-82000000693ns/opPASSokcommand-line-arguments5.797s
golang string转int8_Go教程:23 string转换int类型方法对比相关推荐
- java 转换int类型数值到对应的金额大写
看到一个将时间复杂度的文件,说来说去,按数组下标的访问方法才是最快的 ,当然按照这个原理还可以用来生成随机密码 之类 等等 package com.tx.myt5;import java.util.S ...
- java float强制转换int类型_float型怎样强制转换成int型
展开全部 运行时所有数据都存储在内存中,32313133353236313431303231363533e4b893e5b19e31333436316236所以相同很正常,float转int会将小数后 ...
- android 颜色值16进制转换int类型;
int color=Color.parseColor(#3686FD)textView.setTextColor(color);
- HINSTANCE 转换 int 正确方法(C++)
int code = reinterpret_cast<int>(hInstApp) //其中hInstApp 为 HINSTANCE 类型. 用于ShellExecuteEx ,并且设置 ...
- golang struct 转map 及 map[string]*Struct 初始化和遍历
package mainimport ("encoding/json""errors""fmt""reflect"&qu ...
- java object数组转实体类_详解Java中String JSONObject JSONArray List实体类转换
JSON使用阿里的fastJson为依赖包 gradle依赖管理如下: compile group: "com.alibaba", name: "fastjson&quo ...
- CString与string、char*的区别和转换
我们在C++的开发中经常会碰到string.char*以及CString,这三种都表示字符串类型,有很多相似又不同的地方,常常让人混淆.下面详细介绍这三者的区别.联系和转换: 各自的区别 char*: ...
- Go语言基础(四)—String与其他基本数据类型的转换
Go语言中,不同类型的变量之间不能自动转换,需要显式转换,这与Java和C都有区别 var i int32 =100 var n1 float32 = float(i) //将int32转换为floa ...
- Java教程:Java String字符串和整型int的相互转换
Java教程String 在编程中被广泛使用,所以掌握 String 和 int 的相互转换方法是极其重要的.本节前面部分主要讲解了 String 转换 int 和 int 转换 String 方法, ...
最新文章
- Boostrap技能点整理之【bootstrap简介】
- 自定义日历控android,Android自定义日历Calender代码实现
- WinAPI: 钩子回调函数之 CallWndProcRetProc
- 浅谈SaaS应用开发的难度
- -Android的发展webservice-号码归属地查询
- shell基础之更改IP
- Android 通过baidu借口 获得移动基站方法
- mysql汪晓青课后答案_MySQL数据库基础实例教程
- 关于idea注释等颜色设置
- 基于DEAP库的NSGA2代码详解
- 将SpringBoot项目打包并部署到服务器
- java 字符长度判断_java判断中文字符串长度的简单实例
- 球面坐标系转换为笛卡尔坐标系
- Java去除空格符号
- Android Weekly #33 :这个世界的问题,在于聪明人充满疑惑,而傻子们坚信不疑
- Android Studio ---------------- 软件使用小细节(更新中。。。。。。)
- 【Python】用字母生成图像
- 乡镇卫生院计算机编制待遇怎么样,三甲医院VS乡镇卫生院事业编,选哪个?
- 九连环课程设计c语言,用C语言编程解九连环
- 华为智能汽车产业研究与投资机会分析
热门文章
- 17 | 五险一金到底有什么用?被忽视的个人利益
- 计算机科学与技术军训,计算机科学与技术学院召开2018级新生军训动员大会
- 为什么打印还要另存为_为什么打印机一打印就会出现另存为
- Spring IOC(一):概述
- x64dbg 自带脚本系统
- 新冠无情人间有情,欣隆农业保民生共抗疫——慰问抗疫一线及爱老助困送欣隆酵醒鸡蛋蔬菜进社区公益行动
- vue框架中,图片应该保存在哪里?应该如何访问?
- 汽车外饰胶市场现状及未来发展趋势
- java timezone id_java – 从SimpleTimeZone获取ZoneId
- 推荐一款个人资料管理软件(免费,Wizknowledge)