Go语言之字符串函数和日期函数与格式化

Posted 程序彤

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go语言之字符串函数和日期函数与格式化相关的知识,希望对你有一定的参考价值。

字符串函数

package main
import(
	"fmt"
	"strconv"
	"strings"
)

func main(){
	str1 := "李威彤"
	str2 := []rune(str1)
	for i:=0;i<len(str2);i++{
		fmt.Printf("%c\\n",str2[i])
	}

	// 字符串转为整数
	n,err := strconv.Atoi("123")
	if err != nil{
		fmt.Println("出错了:",err)
	}else{
		fmt.Println("转成的结果为:",n)
	}

	// 整数转为字符串
	str3 := strconv.Itoa(12345)
	fmt.Printf("%v,%T\\n",str3,str3)

	// 字符串转为字节数组
	var bytes = []byte("lwt666")
	fmt.Printf("%v\\n",bytes)

	// 字节数组转为字符串
	str4 := string([]byte{97,98,99})
	fmt.Printf("%v\\n",str4) 

	// 十进制转2、8/16进制
	str5:=strconv.FormatInt(8,2)
	fmt.Printf("8的二进制%v\\n",str5)
	str6:=strconv.FormatInt(8,16)
	fmt.Printf("8的十六进制%v\\n",str6)

	// 子串是否包含在字符串中
	bool1:=strings.Contains("lwt666","lwt")
	fmt.Println(bool1)

	num1:=strings.Count("lwwt","w")
	fmt.Println(num1)

	// EqualFold忽略大小写的字符串判断
	bool2 := strings.EqualFold("lwt","lwT1")
	fmt.Println(bool2)

	// Index子串第一次出现的索引
	index1 := strings.Index("ggo","go")
	fmt.Println(index1)

	// LastIndex子串最后一次出现的索引
	index2 := strings.LastIndex("ggo go","go")
	fmt.Println(index2)

	// Replace替换
	str7 := strings.Replace("go go 666","go","lwt",1)
	fmt.Println("str7=",str7)

	// 将字符串按某字符分割
	str8 := strings.Split("hello,lwt,666",",")
	for i:=0; i<len(str8);i++{
		fmt.Println(str8[i])
	}
	fmt.Println(str8)

	// 字符串转小写
	str9 := "Go Lang"
	str9 = strings.ToLower(str9)
	fmt.Println(str9)

	// 字符串转大写
	str10 := "Go Lang"
	str10 = strings.ToUpper(str10)
	fmt.Println(str10)

	// 去掉左右两边指定的字符串
	str11 := " !lwt! "
	str11 = strings.Trim(str11," !")
	fmt.Println(str11) // "lwt"

	// 去掉左右两边空格TrimSpace()、TrimLeft()、TrimRight()去掉左、右指定的字符
	bool3 := strings.HasPrefix("http://www.baidu.com","http");
	fmt.Println(bool3)
}

日期函数与格式化

package main
import(
	"fmt"
	"time"
)

func main(){
	timeStr := time.Now()
	fmt.Println(timeStr)

	fmt.Printf("%d-%d-%d %d:%d:%d\\n",timeStr.Year(),timeStr.Month(),timeStr.Day(),
	timeStr.Hour(),timeStr.Minute(),timeStr.Second()) // 不带0

	// Mon Jan 2 15:04:05 -0700 MST 2006
	time1 := timeStr.Format("2006-01-02 15:04:05")
	fmt.Println(time1) // 带0

	time2 := timeStr.Format("2006-01-02")
	fmt.Println(time2)

	time3 := timeStr.Format("15:04:05")
	fmt.Println(time3)

	fmt.Println(timeStr.Unix())
	fmt.Println(timeStr.UnixNano())

}

测试程序执行时间

package main
import(
	"fmt"
	"strconv"
	"time"
)

func main(){
	// timeStr := time.Now()
	start := time.Now().Unix()
	test01()
	end := time.Now().Unix()
	fmt.Println(end-start)

}

func test01(){
	str := ""
	for i:=0;i<100000;i++{
		str+="hello"+strconv.Itoa(i)
		// fmt.Println(str)
	}
}

以上是关于Go语言之字符串函数和日期函数与格式化的主要内容,如果未能解决你的问题,请参考以下文章

go语音基础之函数

Go 语言编程规范

GO基础之函数

7.Go语言基础之函数

Go语言基础之函数

Go语言之Go语言 异常处理与测试