golang之iouil生成/读/写文件,以及字符串的处理

81 阅读2分钟

生成/写入一个文件

str := "hello world"
//字符串必须转换为字节数组才能写入写入ioutil
err := ioutil.WriteFile("./student.txt",[]byte(str), 0777)
if err != nil{
    fmt.Println("文件写入错误",err)
    return
}

读取文件

const1, err := ioutil.ReadFile("./student.txt")
if err != nil {
    fmt.Println("文件打开异常", err)
    return
}
fmt.Println(string(const1))
//读取文件student.txt的内容。ioutil函数返回的是一个字节切片([]byte),而不是字符串
//因此需要使用string函数将字节切片转换为字符串打印出来

ioutil如何读取文件偶数行

const1, err := ioutil.ReadFile("./student.txt") 
if err != nil { 
    fmt.Println("文件打开异常", err) 
    return 
} 

// 利用字符串分割将整个文件内容根据换行符分割为多行 
lines := strings.Split(string(const1), "\r\n") 

for i, line := range lines { 
    // 判断行数是否为偶数 
    if i%2 == 1 { 
        // 打印偶数行内容 
        fmt.Println(line) 
    } 
}

字符串规则

获取字符串前3个字符

msg[:3]

字符串分割

split := strings.Split(msg, "-")
msg字符串用-分割成数组split
//字符串第一次出现再第几个字符串后,如果不存在返回-1
number := strings.Index(url, "/")
fmt.Println("最先出现/", number)

//字符串最后一次出现再第几个字符串后,如果不存在返回-1
number = strings.LastIndex(url, "/")
fmt.Println("最后出现/", number)

//字符串重复3次
str := strings.Repeat(url, 3)
fmt.Println("连续重复3次字符串", str)

//字符串替换
str = strings.Replace(url, "cd", "CD", 1)
fmt.Println("字符串go替换GO,替换1次,-1表示全换", str)

//转大写
str = strings.ToUpper(url)
fmt.Println("转大写", strings.ToUpper(url))

//转小写
str = strings.ToLower(url)
fmt.Println("转小写", str)

//去除前后的空格
str = strings.TrimSpace(url)
fmt.Println("去除前后的空格", str)

//去除前后的字符串
str = strings.Trim(url, "go")
fmt.Println("去除前后的go字符串", str)

//去除左边的字符串
str = strings.TrimLeft(url, "go")
fmt.Println("去除左边的go字符串", str)

//是否为用什么开头的字符串
tag := strings.HasPrefix(url, "http://")
if !tag {
url = fmt.Sprintf("http://%s", url)
}

//是否为用什么结尾的字符串
tag = strings.HasSuffix(url, "/")
if !tag {
url = fmt.Sprintf("%s/", url)
}
return url

数组/字符串长度

len()