Go字符串常用处理

应用到strings包

/**
 * @Author: jadeshu
 * @Description:
 * @File:  main
 * @Version: 1.0.0
 * @Date: 2019/11/7 1:01
 */
package main

import (
	"fmt"
	"strconv"
	"strings"
)

func main() {
	// 字符串连接组合
	s := []string{"foo", "bar", "baz"}
	fmt.Println(strings.Join(s, "|"))

	// 字符串分割,返回切片
	str := "foo@bar@hhh"
	fmt.Println(strings.Split(str, "@"))

	// 字符串中是否包含子串
	b := strings.Contains(str, "oo")
	fmt.Println(b)

	// 字符串所在位置的索引 从0开始,不存在返回-1
	index := strings.Index(str, "ar")
	fmt.Println(index)

	// 字符串重复
	repeat := strings.Repeat(str, 3)
	fmt.Println(repeat)

	// 去掉字符串首尾空格
	str = "      I  am  str?    "
	fmt.Println("原来字符串内容:", str)
	trim := strings.Trim(str, " ")
	fmt.Println("去首尾空格后字符串内容:", trim)

	// 去掉字符串所有空格
	fields := strings.Fields(str)
	fmt.Println(fields)
	for i, data := range fields {
		fmt.Println(i, data)
	}

	// ==========字符串转换================
	// 字符串追加 ,先将内容转换为字符串在添加到数组中
	//slice := append([]byte("hello "), "world"...)
	slc := make([]byte, 0, 1024)
	//slc := append([]byte("hello "), "jadeshu")
	//slc = append(slc,'X')
	fmt.Println(slc)
	//fmt.Println(slice)
	// 将bool值转换为字符串并追加到字节切片中  AppendXX函数
	slc = strconv.AppendBool(slc, true)
	fmt.Println(string(slc))
	slc = strconv.AppendInt(slc, 1056, 10)
	fmt.Println(string(slc))
	slc = strconv.AppendQuote(slc, "adsad计算机的")
	fmt.Println(string(slc))
	slc = strconv.AppendQuoteRune(slc, '你')
	fmt.Println(string(slc))

	// 将其他格式值转换为字符串   FormatXXX函数
	str2 := strconv.FormatBool(true)
	fmt.Println(str2)
	str2 = strconv.FormatInt(5056, 10)
	fmt.Println(str2)
	str2 = strconv.FormatFloat(3.1415926, 'f', -1, 64)
	fmt.Println(str2)

	// 整数转字符串
	str2 = strconv.Itoa(1000)
	fmt.Println(str2)
	// 字符串整数转整数
	in, e := strconv.Atoi("234")
	if e != nil {
		fmt.Println(e.Error())
	}
	fmt.Println(in)

	// 字符串转其他类型
	// ---1.字符串转bool值
	bflg, _ := strconv.ParseBool("false")
	fmt.Println(bflg)
	// ---2.字符串转整数
	i, _ := strconv.ParseInt("456", 10, 32)
	fmt.Println(i)
}

 

posted @ 2019-11-07 02:13  jadeshu  阅读(155)  评论(0编辑  收藏  举报