package main

import (
"bytes"
"fmt"
"reflect"
"strconv"
"strings"
) func testString() {
var tString string //对于golang, string没有nil概念, tString = nil 和 tString == nil 这两种写法不能通过编译
fmt.Println(tString == "") //true
fmt.Println(len(tString) == 0) //true
fmt.Printf("address=%p\n", &tString) tString = "hello,中国" //字符串是不可变的
fmt.Printf("tString len = %d\n", len(tString)) //结果为 12, go中string的底层实现是[]byte, 所以string的len是按照字符串的byte数组的长度计算的, 一个中文字符占3个byte
fmt.Printf("first byte = %c\n", tString[0]) //可以通过下标访问字节, 但不能修改
s := tString[0:] //这种操作要慎用, 每一次转换都需要复制内容, 并且切片(s)和原字符串(tString)所指向的底层字符数组是一个
fmt.Println(reflect.TypeOf(s)) //结果为string, 字符串的切片操作, 这里要注意返回的仍然是字符串, 而不是slice rString := []rune(tString) //如果想访问中文, 可以用rune类型
fmt.Printf("tString char 7 = %c\n", rString[7]) //国
fmt.Printf("tString char len = %d\n", len(rString)) //结果为 8
//byte实质上是uint8类型, rune实质上是uint32类型 //字符串拼接, 出于效率上的考虑, 如果是少量的拼接,使用哪种都可以, 但如果有大量的字符串拼接, 性能要求较高的场合, 那么选择选择合适的拼接方式就显得很重要
tString = "hello" + "," + "world" // 直接使用运算符 "+" 链接, 因为每次运算都会产生新的字符串,空间和gc不太友好, 优点在于简洁清晰
tString = fmt.Sprintf("%s%s%d", "hello ", "world", 5) //fmt格式化, 逻辑复杂, 几种拼接方式中, 效率基本是最低的, 优点可以格式化其他的类型
tString = strings.Join([]string{"hello", "world"}, ":") //strings拼接, 优点在 如果已有一个字符串数组效率很高, 但如果是重新构造的话, 代价也不小
buffer := bytes.Buffer{} //bytes.Buffer, 适用于大量的拼接,性能要求较高的场景
buffer.WriteString("hello")
buffer.WriteString("world")
fmt.Println(buffer.String())
fmt.Println(tString) //字符串的更多操作(截取, 分割, 比较, 索引, 前后缀等)strings
fmt.Println(strings.Contains(tString, "中")) //字符串与基础数据类型的转换在strconv包
iString := "5"
i, _ := strconv.Atoi(iString) //字符串转int
strconv.Itoa(i) //int转string
ui, _ := strconv.ParseInt(iString, 10, 8) //第一个参数是需要转换的字符串, 第二个是进制(二进制, 八进制...), 第三个是bit大小(int8,int16...) //ParseFloat, ParseUint, ParseBool分别是字符串转换浮点, uint, 布尔类型.
//基础类型转换成string有Format
strconv.FormatInt(ui, 10)
strconv.FormatBool(true)
//字符串操作的包是strings, 比较, 前后缀, 去空格, 切分, 大小写转换... } func main() { testString() }

golang 字符串与整数, 布尔转换 strconv的更多相关文章

  1. 编程练习------C/C++分别实现字符串与整数的转换

    C/C++分别实现字符串与整数的转换 前提:不使用 itoa 和 atoi. 方法一.C和C++通用的一种转换手段是: 1.整数转化为字符串:采用加'0',再逆序的办法,整数加'0'就会隐性转化成ch ...

  2. Leetcode8--->String to Integer(实现字符串到整数的转换)

    题目: 实现字符串到整数的转换 解题思路: 下面给出这道题应该注意的一些细节: 1. 字符串“    123   ” = 123: 2.   字符串“+123” = 123: 3.   字符串“-12 ...

  3. Golang 字符串操作--使用strings、strconv包

    strings包 package main import ( "fmt" "strings" ) func main() { //func Count(s, s ...

  4. python自动化--字符串和整数的转换,while的循环体

    字符串(str)和整数(int)类型变量的结合 *遵循只有同一类型的变量才可以结合. *不同类型的变量之间的转换 实例:实现打印出"192.168.100"和1的结合出" ...

  5. 不使用c的任何库函数 实现字符串到整数的转换 整数到字符串的转换

    转载请标明出处:http://www.cnblogs.com/NongSi-Net/p/6805844.html 今天主要总结下:完成编程: 1.除printf函数之外,不用任何c语言库函数,实现将字 ...

  6. 3.Python自我修炼(升仙中....整数,布尔值,字符串,for循环)

    python学习(整数,布尔值,字符串,for循环) 1.整数 ​ 在python3中所有的整数都是int类型. 但在python2中如果数据量比较大. 会使用long类型.但是在python3中不存 ...

  7. python 字符串和整数,浮点型互相转换

    在编程当中,经常要用到字符串的互相转换, 现在记录 python 里面的字符串和整数是怎么转换的. int(str) 函数将 符合整数的规范的字符串 转换成 int 型. num2 = "1 ...

  8. LintCode-54.转换字符串到整数

    转换字符串到整数 实现atoi这个函数,将一个字符串转换为整数.如果没有合法的整数,返回0.如果整数超出了32位整数的范围,返回INT_MAX(2147483647)如果是正整数,或者INT_MIN( ...

  9. 用递归法将一个整数n转换成字符串。

    用递归法将一个整数n转换成字符串. 比如,输入483,应输出字符串"483".n的位数不确定,能够是随意位数的整数. #include "stdafx.h" # ...

随机推荐

  1. Codeforces 946D Timetable(预处理+分组背包)

    题目链接:http://codeforces.com/problemset/problem/946/D 题目大意:有n个字符串,代表n天的课表,1表示这个时间要上课,0表示不要上课,一天在学校时间为第 ...

  2. lambda表达式与bind函数

    #include<iostream> #include<algorithm> #include<sstream> #include<vector> #i ...

  3. poj 3372(找规律)

    Candy Distribution Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6033   Accepted: 335 ...

  4. LanguageTag

    LanguageTag */--> div.org-src-container { font-size: 85%; font-family: monospace; } pre.src { bac ...

  5. 判断一个字符是否为数字的两种方法(C/C++)

    在平时,我们经常遇见判断字符是否为数字这种题目,虽然感觉还是很简单,不过我是个更喜欢用函数的人,因为我觉得这样更便捷,所以我更推荐第二种方式. 1.直接判断 #include <stdio.h& ...

  6. C# POS 小票打印

    网上查了好多资料终于让我捣鼓出来了! public partial class Models_JXC_Sale_actNewSalePage : WebPartBase { public string ...

  7. **后台怎么处理JSON数据中含有双引号?

    http://bbs.csdn.net/topics/390578406?page=1 注意是后台,不是用js另外我这个json是直接取得别人的传过来的字符串,不是我自己拼写的,所以我自己不能做到转义 ...

  8. **PHP foreach 如何判断为数组最后一个最高效?

    http://www.zhihu.com/question/20158667 其他方法: $list = array('a', 'b', 'c'); foreach($list as $k=>$ ...

  9. CentOS7.5安装MongoDB4.0与CRUD基本操作

    一 MongoDB简介 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数 ...

  10. spring boot之org.springframework.boot.context.TypeExcludeFilter

    曾经碰到过这样一种情况,想让某个使用了spring 注解的类不被spring扫描注入到spring bean池中,比如下面的类使用了@Component和@ConfigurationPropertie ...