GO-字符串常用操作

Golang语言社区 2018-07-03 11:37:02

  1. package main


  2. import (

  3.     "fmt"

  4.     "strconv"

  5.     "strings"

  6. )


  7. func main() {

  8.     /*字符串基本操作--strings*/

  9.     str := "wangdy"

  10.     //是否包含

  11.     fmt.Println(strings.Contains(str, "wang"), strings.Contains(str, "123")) //true false

  12.     //获取字符串长度

  13.     fmt.Println(len(str)) //6

  14.     //获取字符在字符串的位置 从0开始,如果不存在,返回-1

  15.     fmt.Println(strings.Index(str, "g")) //3

  16.     fmt.Println(strings.Index(str, "x")) //-1

  17.     //判断字符串是否以 xx 开头

  18.     fmt.Println(strings.HasPrefix(str, "wa")) //true

  19.     //判断字符串是否以 xx 结尾

  20.     fmt.Println(strings.HasSuffix(str, "dy")) //true

  21.     //判断2个字符串大小,相等0,左边大于右边-1,其他1

  22.     str2 := "hahaha"

  23.     fmt.Println(strings.Compare(str, str2)) //1

  24.     //分割字符串

  25.     strSplit := strings.Split("1-2-3-4-a", "-")

  26.     fmt.Println(strSplit) //[1 2 3 4 a]

  27.     //组装字符串

  28.     fmt.Println(strings.Join(strSplit, "#")) //1#2#3#4#a

  29.     //去除字符串2端空格

  30.     fmt.Printf("%s,%s\n", strings.Trim("  我的2边有空格   1  ", " "), "/////") //我的2边有空格   1,/////

  31.     //大小写转换

  32.     fmt.Println(strings.ToUpper("abDCaE")) //ABDCAE

  33.     fmt.Println(strings.ToLower("abDCaE")) //abdcae

  34.     //字符串替换:意思是:在sourceStr中,把oldStr的前n个替换成newStr,返回一个新字符串,如果n<0则全部替换

  35.     sourceStr := "123123123"

  36.     oldStr := "12"

  37.     newStr := "ab"

  38.     n := 2

  39.     fmt.Println(strings.Replace(sourceStr, oldStr, newStr, n))


  40.     /*字符串转换--strconv*/

  41.     //整型-字符串

  42.     fmt.Println(strconv.Itoa(12)) //12

  43.     //字符串-整型

  44.     num, err := strconv.Atoi("-315")

  45.     if err != nil {

  46.         fmt.Println("occur err : ", err)

  47.     } else {

  48.         fmt.Println("转换后的字符串是: ", num) //-315

  49.     }


  50.     //bool-字符串

  51.     fmt.Println(strconv.ParseBool("false")) //false <nil>

  52.     //float-字符串 传递一个位数

  53.     fmt.Println(strconv.ParseFloat("3.14", 32)) //3.140000104904175 <nil>

  54.     fmt.Println(strconv.ParseFloat("3.14", 64)) //3.14 <nil>

  55.     fmt.Println(strconv.ParseInt("343", 0, 64)) //343 <nil>

  56.     //格式化操作,传递进制数

  57.     fmt.Println(strconv.FormatBool(true))

  58.     fmt.Println(strconv.FormatInt(123, 10)) //123

  59.     fmt.Println(strconv.FormatInt(123, 2))  //1111011

  60.     fmt.Println(strconv.FormatInt(123, 16)) //7b

  61. }