package main
import (
"fmt"
"strings"
"strconv"
)
func main() {
fmt.Println("Hello W3Cschool!")
m := "alexle"
fmt.Println(m)
fmt.Printf("%S\n",m)
fmt.Println(strings.Split(m,"e")) //按什么切片
fmt.Println(strings.HasPrefix(m, "a")) //判断是否以什么开头
fmt.Println(strings.HasSuffix(m, "a")) //判断是否以什么结尾
fmt.Println(strings.HasSuffix(m, "e")) //判断是否以什么结尾
fmt.Println(strings.HasSuffix(m, "")) //这个判断是true
fmt.Println(strings.Index(m,"le")) // 2 返回首次出现 string 的位置(下标)
fmt.Println(strings.LastIndex(m,"le")) //5 自右向左查询首次出现的string位置
fmt.Println(strings.IndexRune(m,'l')) // 查询Rune类型'l'出现的位置 注意Rune类型是单引号
fmt.Println(strings.Replace(m,"e","b",1)) // (str,old,new,n) 替换str中的old为new n=-1 时替换所有
fmt.Println(strings.Replace(m,"e","b",0)) // (str,old,new,n) 替换str中的old为new n=-1 时替换所有 =0 时不替换 =1 替换第一个 =2替换前两个 以此递推
fmt.Println(strings.Replace(m,"e","b",-1)) // (str,old,new,n) 替换str中的old为new n=-1 时替换所有
fmt.Println(strings.Count(m,"e")) // 统计sring 中 某字符串出现的次数
fmt.Println(strings.Repeat(m,4)) //alexlealexlealexlealexle 相当于字符串乘4
fmt.Println(strings.ToLower(m)) // 全小写
fmt.Println(strings.ToUpper(m)) // 全大写
fmt.Println(strings.TrimSpace(m)) //除去字符串两端的空白字符串
fmt.Println(strings.Trim(m,"le")) //除去字符串 开头和结尾的"le"字符串
fmt.Println(strings.Fields(m)) // 分割字符串 返回对应的slice 切片类型
var sa = []string{"1","2","3"} // 切片
var arr [3]string // 数组 or
// Go语言的数组和切片真让人懵逼
fmt.Println(strings.Join(sa,","))//这里第一个参数需要传入一个切片 不能传数组 ...
fmt.Println(arr)
num := 10
fmt.Printf("type: %T\n",strconv.Itoa(num))//将数字转化成字符串
var float_test float64
float_test =1.65
fmt.Println(strconv.FormatFloat(float_test,'f',2,64))
fmt.Printf("type: %T\n",strconv.FormatFloat(float_test,'g',2,64))
r,_ := strconv.Atoi("18")
fmt.Printf("%T\n",r)
r1,_ := strconv.ParseFloat("1.618",64)
fmt.Printf("%T\n",r1)
fmt.Println("lalalala")
}