2 字符串操作 日期

1 字符串操作

package main

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

func urlProcess(url string) string {
    result := strings.HasPrefix(url,"http://")
    if ! result{
        url = fmt.Sprintf("http://%s",url)
    }

    return url
}

func pathProcess(path string) string {
    result := strings.HasSuffix(path,"/")
    if ! result{
        path = fmt.Sprintf("%s/",path)
    }
    return path
}

func main() {
    var url,path string

    fmt.Scanf("%s%s",&url,&path)

    url = urlProcess(url)
    path = pathProcess(path)
    fmt.Println(url)
    fmt.Println(path)

    s:="Hello lol oHe"
    fmt.Println(s)
    s = strings.Replace(s,"lo","yang",1)//替换一次
    s = strings.Replace(s,"lo","yang",-1)//全部替换
    s = strings.Replace(s,"lo","yang",0)//替换0次

    n:=strings.Count(s,"lo")//统计出现次数

    s = strings.ToLower(s)//转化为小写
    s = strings.ToUpper(s) //转化为大写
    s = strings.TrimSpace(s)//去除首位空格
    s = strings.Trim(s,"He")//去除首尾的He
    s = strings.TrimLeft(s,"He")//去除左边的He
    s = strings.TrimRight(s,"He")//去除右边的He
    s1 := strings.Fields(s) //返回字符串以空格分割的slice
    s2 := strings.Split(s,"o")//返回字符串o分割的slice
    index := strings.Index(s,"ol")//返回ol首次在s中出现的位置,没有的话返回-1
    index := strings.LastIndex(s,"lo")//返回lo最后一次在s中出现的位置,没有的话返回-1
    s = strings.Repeat(s,4) //重复字符串s四次
    s = strings.Join(strings.Fields("hello world"),",")//将slice用,连接

    a:=strconv.Itoa(10)//数字转字符串


    fmt.Printf("%T\n",a)//string
    fmt.Printf("%v\n",a)//10
    fmt.Printf("%#v\n",a)//"10"
    fmt.Printf("%q\n",a)//"10"

    num,err := strconv.Atoi("10a")//字符串转数字,会有异常
    if err != nil{
        fmt.Println("can not convert to int",err)
    }
    fmt.Println(num)


    fmt.Println(n)
}

2 时间操作

package main

import (
    "time"
    "fmt"
)

func test() {
    time.Sleep(time.Millisecond * 100)//100毫秒
}

func main() {
    now := time.Now()
    fmt.Println(now)
    fmt.Printf("%T\n",now)
    fmt.Println(now.Day())
    fmt.Println(now.Minute())
    fmt.Println(now.Month())
    fmt.Println(now.Year())
    //格式化
    fmt.Printf("%02d-%02d-%02d %02d:%02d:%02d\n",now.Year(),now.Month(),now.Day(),now.Hour(),now.Minute(),now.Second())

    //格式化
    fmt.Println(now.Format("2006-1-02 15:04:05"))

    start :=time.Now().UnixNano()
    test()
    end := time.Now().UnixNano()

    fmt.Printf("cost %d us",(end-start)/1000) //秒 毫秒 微妙 纳秒
}

 

posted @ 2018-10-28 21:23  jec1999  阅读(116)  评论(0编辑  收藏  举报