1. ------------------------------------------------------------
  2.  
  3. // 将布尔值转换为字符串 true 或 false
  4. func FormatBool(b bool) string
  5.  
  6. // 将字符串转换为布尔值
  7. // 它接受真值:1, t, T, TRUE, true, True
  8. // 它接受假值:0, f, F, FALSE, false, False
  9. // 其它任何值都返回一个错误。
  10. func ParseBool(str string) (bool, error)
  11.  
  12. ------------------------------
  13.  
  14. // ErrRange 表示值超出范围
  15. var ErrRange = errors.New("value out of range")
  16.  
  17. // ErrSyntax 表示语法不正确
  18. var ErrSyntax = errors.New("invalid syntax")
  19.  
  20. // 将整数转换为字符串形式。base 表示转换进制,取值在 2 到 36 之间。
  21. // 结果中大于 10 的数字用小写字母 a - z 表示。
  22. func FormatInt(i int64, base int) string
  23. func FormatUint(i uint64, base int) string
  24.  
  25. // 将字符串解析为整数,ParseInt 支持正负号,ParseUint 不支持正负号。
  26. // base 表示进位制(2 到 36),如果 base 为 0,则根据字符串前缀判断,
  27. // 前缀 0x 表示 16 进制,前缀 0 表示 8 进制,否则是 10 进制。
  28. // bitSize 表示结果的位宽(包括符号位),0 表示最大位宽。
  29. func ParseInt(s string, base int, bitSize int) (i int64, err error)
  30. func ParseUint(s string, base int, bitSize int) (uint64, error)
  31.  
  32. // 将整数转换为十进制字符串形式(即:FormatInt(i, 10) 的简写)
  33. func Itoa(i int) string
  34.  
  35. // 将字符串转换为十进制整数,即:ParseInt(s, 10, 0) 的简写)
  36. func Atoi(s string) (int, error)
  37.  
  38. ------------------------------
  39.  
  40. // 示例
  41. func main() {
  42. fmt.Println(strconv.ParseInt("FF", 16, 0))
  43. // 255
  44. fmt.Println(strconv.ParseInt("0xFF", 16, 0))
  45. // 0 strconv.ParseInt: parsing "0xFF": invalid syntax
  46. fmt.Println(strconv.ParseInt("0xFF", 0, 0))
  47. // 255
  48. fmt.Println(strconv.ParseInt("9", 10, 4))
  49. // 7 strconv.ParseInt: parsing "9": value out of range
  50. }
  51.  
  52. ------------------------------
  53.  
  54. // FormatFloat 将浮点数 f 转换为字符串形式
  55. // f:要转换的浮点数
  56. // fmt:格式标记(b、e、E、f、g、G)
  57. // prec:精度(数字部分的长度,不包括指数部分)
  58. // bitSize:指定浮点类型(32:float32、64:float64),结果会据此进行舍入。
  59. //
  60. // 格式标记:
  61. // 'b' (-ddddp±ddd,二进制指数)
  62. // 'e' (-d.dddde±dd,十进制指数)
  63. // 'E' (-d.ddddE±dd,十进制指数)
  64. // 'f' (-ddd.dddd,没有指数)
  65. // 'g' ('e':大指数,'f':其它情况)
  66. // 'G' ('E':大指数,'f':其它情况)
  67. //
  68. // 如果格式标记为 'e','E'和'f',则 prec 表示小数点后的数字位数
  69. // 如果格式标记为 'g','G',则 prec 表示总的数字位数(整数部分+小数部分)
  70. // 参考格式化输入输出中的旗标和精度说明
  71. func FormatFloat(f float64, fmt byte, prec, bitSize int) string
  72.  
  73. // 将字符串解析为浮点数,使用 IEEE754 规范进行舍入。
  74. // bigSize 取值有 32 和 64 两种,表示转换结果的精度。
  75. // 如果有语法错误,则 err.Error = ErrSyntax
  76. // 如果结果超出范围,则返回 ±Inf,err.Error = ErrRange
  77. func ParseFloat(s string, bitSize int) (float64, error)
  78.  
  79. ------------------------------
  80.  
  81. // 示例
  82. func main() {
  83. s := "0.12345678901234567890"
  84.  
  85. f, err := strconv.ParseFloat(s, 32)
  86. fmt.Println(f, err) // 0.12345679104328156
  87. fmt.Println(float32(f), err) // 0.12345679
  88.  
  89. f, err = strconv.ParseFloat(s, 64)
  90. fmt.Println(f, err) // 0.12345678901234568
  91. }
  92.  
  93. ------------------------------
  94.  
  95. // 判断字符串是否可以不被修改的表示为一个单行的反引号字符串。
  96. // 字符串中不能含有控制字符(除了 \t)和“反引号”字符,否则返回 false
  97. func CanBackquote(s string) bool
  98.  
  99. // 示例:找出所有 !CanBackquote 的字符
  100. func main() {
  101. for i := rune(0); i < utf8.MaxRune; i++ {
  102. if !strconv.CanBackquote(string(i)) {
  103. fmt.Printf("%q, ", i)
  104. }
  105. }
  106. }
  107.  
  108. // 结果如下:
  109. // '\x00', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\a', '\b', '\n', '\v', '\f', '\r', '\x0e', '\x0f', '\x10', '\x11', '\x12', '\x13', '\x14', '\x15', '\x16', '\x17', '\x18', '\x19', '\x1a', '\x1b', '\x1c', '\x1d', '\x1e', '\x1f', '`', '\u007f', '\ufeff'
  110.  
  111. ------------------------------
  112.  
  113. // 判断 r 是否为可打印字符
  114. // 可否打印并不是你想象的那样,比如空格可以打印,而\t则不能打印
  115. func IsPrint(r rune) bool
  116.  
  117. // 判断 r 是否为 Unicode 定义的图形字符。
  118. func IsGraphic(r rune) bool
  119.  
  120. ------------------------------
  121.  
  122. // 示例:获取不可打印字符和非图形字符
  123. func main() {
  124. var rnp, rng, rpng, rgnp []rune
  125. const maxLen = 32
  126. for i := rune(0); i < utf8.MaxRune; i++ {
  127. if !strconv.IsPrint(i) { // 不可打印
  128. if len(rnp) < maxLen {
  129. rnp = append(rnp, i)
  130. }
  131. if strconv.IsGraphic(i) && len(rgnp) < maxLen { // 图形字符
  132. rgnp = append(rgnp, i)
  133. }
  134. }
  135. if !strconv.IsGraphic(i) { // 非图形字符
  136. if len(rng) < maxLen {
  137. rng = append(rng, i)
  138. }
  139. if strconv.IsPrint(i) && len(rpng) < maxLen { // 可打印
  140. rpng = append(rpng, i)
  141. }
  142. }
  143. }
  144. fmt.Printf("不可打印字符 :%q\n", rnp)
  145. fmt.Printf("非图形字符 :%q\n", rng)
  146. fmt.Printf("不可打印图形字符:%q\n", rgnp)
  147. fmt.Printf("可打印非图形字符:%q\n", rpng)
  148. }
  149.  
  150. // 不可打印字符 :['\x00' '\x01' '\x02' '\x03' '\x04' '\x05' '\x06' '\a' '\b' '\t' '\n' '\v' '\f' '\r' '\x0e' '\x0f' '\x10' '\x11' '\x12' '\x13' '\x14' '\x15' '\x16' '\x17' '\x18' '\x19' '\x1a' '\x1b' '\x1c' '\x1d' '\x1e' '\x1f']
  151. // 非图形字符 :['\x00' '\x01' '\x02' '\x03' '\x04' '\x05' '\x06' '\a' '\b' '\t' '\n' '\v' '\f' '\r' '\x0e' '\x0f' '\x10' '\x11' '\x12' '\x13' '\x14' '\x15' '\x16' '\x17' '\x18' '\x19' '\x1a' '\x1b' '\x1c' '\x1d' '\x1e' '\x1f']
  152. // 不可打印图形字符:['\u00a0' '\u1680' '\u2000' '\u2001' '\u2002' '\u2003' '\u2004' '\u2005' '\u2006' '\u2007' '\u2008' '\u2009' '\u200a' '\u202f' '\u205f' '\u3000']
  153. // 可打印非图形字符:[]
  154.  
  155. ------------------------------
  156.  
  157. // 将 s 转换为双引号字符串
  158. func Quote(s string) string
  159.  
  160. // 功能同上,非 ASCII 字符和不可打印字符会被转义
  161. func QuoteToASCII(s string) string
  162.  
  163. // 功能同上,非图形字符会被转义
  164. func QuoteToGraphic(s string) string
  165.  
  166. ------------------------------
  167.  
  168. // 示例
  169. func main() {
  170. s := "Hello\t世界!\n"
  171. fmt.Println(s) // Hello 世界!(换行)
  172. fmt.Println(strconv.Quote(s)) // "Hello\t世界!\n"
  173. fmt.Println(strconv.QuoteToASCII(s)) // "Hello\t\u4e16\u754c\uff01\n"
  174. fmt.Println(strconv.QuoteToGraphic(s)) // "Hello\t世界!\n"
  175. }
  176.  
  177. ------------------------------
  178.  
  179. // 将 r 转换为单引号字符
  180. func QuoteRune(r rune) string
  181.  
  182. // 功能同上,非 ASCII 字符和不可打印字符会被转义
  183. func QuoteRuneToASCII(r rune) string
  184.  
  185. // 功能同上,非图形字符会被转义
  186. func QuoteRuneToGraphic(r rune) string
  187.  
  188. ------------------------------
  189.  
  190. // Unquote 将“带引号的字符串” s 转换为常规的字符串(不带引号和转义字符)
  191. // s 可以是“单引号”、“双引号”或“反引号”引起来的字符串(包括引号本身)
  192. // 如果 s 是单引号引起来的字符串,则返回该该字符串代表的字符
  193. func Unquote(s string) (string, error)
  194.  
  195. // UnquoteChar 将带引号字符串(不包含首尾的引号)中的第一个字符“取消转义”并解码
  196. //
  197. // s :带引号字符串(不包含首尾的引号)
  198. // quote:字符串使用的“引号符”(用于对字符串中的引号符“取消转义”)
  199. //
  200. // value :解码后的字符
  201. // multibyte:value 是否为多字节字符
  202. // tail :字符串 s 解码后的剩余部分
  203. // error :返回 s 中是否存在语法错误
  204. //
  205. // 参数 quote 为“引号符”
  206. // 如果设置为单引号,则 s 中允许出现 \'、" 字符,不允许出现单独的 ' 字符
  207. // 如果设置为双引号,则 s 中允许出现 \"、' 字符,不允许出现单独的 " 字符
  208. // 如果设置为 0,则不允许出现 \' 或 \" 字符,但可以出现单独的 ' 或 " 字符
  209. func UnquoteChar(s string, quote byte) (value rune, multibyte bool, tail string, err error)
  210.  
  211. ------------------------------
  212.  
  213. // 示例
  214. func main() {
  215. s1 := "`Hello 世界!`" // 解析反引号字符串
  216. s2 := `"Hello\t\u4e16\u754c\uff01"` // 解析双引号字符串
  217. fmt.Println(strconv.Unquote(s1)) // Hello 世界! <nil>
  218. fmt.Println(strconv.Unquote(s2)) // Hello 世界! <nil>
  219.  
  220. fmt.Println()
  221. fmt.Println(strconv.UnquoteChar(`\u4e16\u754c\uff01`, 0))
  222. // 19990 true \u754c\uff01 <nil>
  223. fmt.Println(strconv.UnquoteChar(`\"abc\"`, '"'))
  224. // 34 false abc\" <nil>
  225. }
  226.  
  227. ------------------------------
  228.  
  229. // 将各种类型转换为字符串后追加到 dst 尾部。
  230. func AppendInt(dst []byte, i int64, base int) []byte
  231. func AppendUint(dst []byte, i uint64, base int) []byte
  232. func AppendFloat(dst []byte, f float64, fmt byte, prec, bitSize int) []byte
  233. func AppendBool(dst []byte, b bool) []byte
  234.  
  235. // 将各种类型转换为带引号字符串后追加到 dst 尾部。
  236. func AppendQuote(dst []byte, s string) []byte
  237. func AppendQuoteToASCII(dst []byte, s string) []byte
  238. func AppendQuoteToGraphic(dst []byte, s string) []byte
  239. func AppendQuoteRune(dst []byte, r rune) []byte
  240. func AppendQuoteRuneToASCII(dst []byte, r rune) []byte
  241. func AppendQuoteRuneToGraphic(dst []byte, r rune) []byte
  242.  
  243. ------------------------------------------------------------

Golang学习 - strconv 包的更多相关文章

  1. Golang学习 - strconv 包--数据类型转换

    // 将布尔值转换为字符串 true 或 false func FormatBool(b bool) string // 将字符串转换为布尔值 // 它接受真值:1, t, T, TRUE, true ...

  2. Golang学习 - sort 包

    ------------------------------------------------------------ // 满足 Interface 接口的类型可以被本包的函数进行排序. type ...

  3. Golang学习 - reflect 包

    ------------------------------------------------------------ 在 reflect 包中,主要通过两个函数 TypeOf() 和 ValueO ...

  4. Golang学习 - bufio 包

    ------------------------------------------------------------ // bufio 包实现了带缓存的 I/O 操作 -------------- ...

  5. Golang学习 - io 包

    ------------------------------------------------------------ 先说一下接口,Go 语言中的接口很简单,在 Go 语言的 io 包中有这样一个 ...

  6. golang的 strconv 包

    前言 不做文字搬运工,多做思路整理 就是为了能速览标准库,只整理我自己看过的...... 注意!!!!!!!!!! 单词都是连着的,我是为了看着方便.理解方便才分开的 1.strconv 中文文档 [ ...

  7. Golang学习 - unsafe 包

    ------------------------------------------------------------ 指针类型: *类型:普通指针,用于传递对象地址,不能进行指针运算. unsaf ...

  8. Golang学习 - errors 包

    ------------------------------------------------------------ Go 语言使用 error 类型来返回函数执行过程中遇到的错误,如果返回的 e ...

  9. Golang学习 - bytes 包

    ------------------------------------------------------------ 对于传入 []byte 的函数,都不会修改传入的参数,返回值要么是参数的副本, ...

随机推荐

  1. 前N个自然数的随机置换

    来自:[数据结构与算法分析——C语言描述]练习2.7 问题描述:假设需要生成前N个自然数的一个随机置换.例如,{4,1,2,5,2}和{3,1,4,2,5}就是合法的置换,但{5,4,1,2,1}却不 ...

  2. iOS app的webview注入JS遇到的坑

    webview使用JSContext 向网页js注入时时机要选为网页加载完成后即放在 -(void)webViewDidFinishLoad:(UIWebView *)webView 方法 : -(v ...

  3. 第三百二十四天 how can I 坚持

    下午去打了会篮球,好累,又把android开发环境搭建起来了,明天把天气应用搞起来. 今天老妈打电话说昨晚梦到我小时候了.. 是啊,都这么大了,不能让他们老操心了. 过两天买根鱼竿去钓鱼. 睡觉.

  4. 【多线程】Java并发编程:Lock(转载)

    原文链接:http://www.cnblogs.com/dolphin0520/p/3923167.html Java并发编程:Lock 在上一篇文章中我们讲到了如何使用关键字synchronized ...

  5. oracle学习 十 数据库的语句优化(持续更)

    平时关注Oracle数据库的网友都知道,Oracle性能优化保证了Oracle数据库的健壮性.下面就此提出需要注意的两个原则.   原则一:注意WHERE子句中的连接顺序: ORACLE采用自下而上的 ...

  6. FZU 8月有奖月赛A Daxia & Wzc's problem (Lucas)

    Problem A Daxia & Wzc's problem Accept: 42    Submit: 228Time Limit: 1000 mSec    Memory Limit : ...

  7. IP地址转换成Long型数字的算法

    在应用程序开发中,涉及到IP地址的存储,大部分开发人员都将其存为String(或文本类型).能否将固定格式为m.n.x.y的IP地址转换成 Long型的数字呢?答案是肯定的.在数据库层面,可以直接将结 ...

  8. react native 网络get请求方式参数不可为undefined或null

    react native 网络get请求方式参数不可为undefined(为空的话默认变为)或null 错误写法: export function addToCartAction(isRefreshi ...

  9. 操作Cookie的一个陷阱服务器端获取不了maxAge或其它属性

    搞了几天终于弄明白了这个问题: 在读取Cookie,然后操作时,除了getName(),getValue()外,不要妄图得到其他信息,如下方法不会得到值的:cookie.getMaxAge();=== ...

  10. 移动端类似IOS的滚动年月控件(需要jQuery和iScroll)

    一. 效果图 二. 功能介绍 支持滚动和点击选择年月.(目前只支持设置年月的最大最小值,不支持整体的最大最小值) 三. 代码 1. 在你的html中添加如下代码: 直接加载<body>里面 ...