zoukankan      html  css  js  c++  java
  • Golang 字符串操作--使用strings、strconv包

    strings包

    package main
    
    import (
    	"fmt"
    	"strings"
    )
    
    func main() {
    	//func Count(s, substr string) int
    	//判断s中出现过多少次substr。
    	//如果substr为空字符串,则返回s的长度,这里的是指unicode字符的数量
    	fmt.Println(strings.Count("hello world", "l")) //3
    	fmt.Println(strings.Count("你好hello", ""))      //8
    
    	//判断s是否包含子串substr
    	//func Contains(s, substr string) bool
    	fmt.Println(strings.Contains("hello world", "he")) //true
    
    	//判断s是否以prefix开头
    	//func HasPrefix(s, prefix string) bool
    	fmt.Println(strings.HasPrefix("hello", "h")) //true
    
    	//找子串的位置
    	//func Index(s, substr string) int
    	fmt.Println(strings.Index("hello", ""))      //0
    	fmt.Println(strings.Index("hello", "o"))     //4
    	fmt.Println(strings.LastIndex("hello", ""))  //5
    	fmt.Println(strings.LastIndex("hello", "e")) //1
    	//如果子串是空字符串,Index返回0,LastIndex则返回字符串长度len(s)
    	//如果包含子串,则返回子串的index。如果不包含子串,则返回-1
    
    	//删除字符串两端的指定字符串
    	//func Trim(s string, cutset string) string
    	fmt.Println(strings.Trim("##demo#$#", "#"))     //demo#$
    	fmt.Println(strings.TrimLeft("##test##", "#"))  //test##
    	fmt.Println(strings.TrimRight("##test##", "#")) //##test
    
    	//删除字符串两端的空白字符(
    ,	,空格等)
    	//func TrimSpace(s string) string
    	s := "   123456 
      "
    	fmt.Println(len(s), len(strings.TrimSpace(s))) //13 6
    
    	//字符串分割与拼接
    	ss := "1#2#3#4#5#6#7"
    	//func Split(s, sep string) []string
    	arr := strings.Split(ss, "#") //[1 2 3 4 5 6 7]
    	//func Join(a []string, sep string) string
    	sss := strings.Join(arr, "-")
    	fmt.Println(arr, sss) //[1 2 3 4 5 6 7] 1-2-3-4-5-6-7
    
    	//字符串比较
    	//func Compare(a, b string) int
    	//0=>a==b    -1=> a<b   1=>a>b
    	if strings.Compare("abc", "cde") > 0 {
    		fmt.Println("abc大于cde")
    	} else {
    		fmt.Println("abc小于或等于cde")
    	}
    	//可以直接使用> == <来进行判断
    
    	//大小写转换
    	//func ToLower(s string) string
    	//func ToUpper(s string) string
    	fmt.Println(strings.ToUpper("123abcdefg"))//123ABCDEFG
    	fmt.Println(strings.ToLower("123ABCDEFG"))//123abcdefg
    }
    

      

    strconv包

    package main
    
    import (
    	"fmt"
    	"strconv"
    )
    
    func main() {
    	//将一个内容是整数的字符串转换为整型
    	//func Atoi(s string) (int, error)
    	if i, err := strconv.Atoi("123"); err != nil {
    		panic(err)
    	} else {
    		fmt.Println(i)
    	}
    
    	//整型转换为字符串型
    	//func Itoa(i int) string
    	s := strconv.Itoa(99)
    	fmt.Println(s)
    
    	//将bool值转换为字符串类型
    	//func FormatBool(b bool) string
    	flag := strconv.FormatBool(true)
    	fmt.Println(flag, len(flag)) //true 4
    
    	//进制间转换
    	//func FormatInt(i int64, base int) string
    	fmt.Println(strconv.FormatInt(100, 4)) //1210  十进制转4进制
    	fmt.Println(strconv.FormatInt(0xA, 2)) //1010	十六进制转2进制
    
    	//将字符串s按照base进制进行解析,注意这里不是数制转换
    	//func ParseInt(s string, base int, bitSize int) (i int64, err error)
    	fmt.Println(strconv.ParseInt("1010", 2, 64)) //10 <nil>
    	fmt.Println(strconv.ParseInt("A", 16, 64))   //10 <nil>
    
    	//浮点数格式化
    	//第二个参数f表示正常输出,e/E表示科学计数法,g/G表示保留结果的总位数(整数部分位数+小数部分位数)
    	//第三个参数表示保留小数点的位数
    	//第四个参数表示使用32位还是64位浮点数来保存结果
    	//func FormatFloat(f float64, fmt byte, prec, bitSize int) string
    	fmt.Println(strconv.FormatFloat(123.456789, 'f', 4, 64)) //123.4568
    	fmt.Println(strconv.FormatFloat(123.456789, 'E', 4, 64)) //1.2346E+02
    	fmt.Println(strconv.FormatFloat(123.456789, 'e', 4, 64)) //1.2346e+02
    	fmt.Println(strconv.FormatFloat(123.456789, 'g', 4, 64)) //123.5
    
    	//将字符串用双引号括起来,不会将转义字符转义,转义字符原样输出
    	//func Quote(s string) string
    	fmt.Println(strconv.Quote("abc")) //"abc"
    }
    

      

  • 相关阅读:
    SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法
    备份还原工具—ghost
    太多的if,太多的痛苦
    C#中使用GUID
    WinForm开发中,将Excel文件导入到DataGridView中时,获取Excel中所有表格的名称。
    使用ASP调用C#写的COM+组件
    COM+ and the .NET Framework 虽是英文但比较全面
    在C#中使用COM+实现事务控制
    COM+ and the .NET Framework
    管理员ID过期,无人能够管理Domino服务器
  • 原文地址:https://www.cnblogs.com/-beyond/p/9238840.html
Copyright © 2011-2022 走看看