那些年使用Golang读取txt的坑!

项目中涉及到一些用户评论和用户可以自定义发布长段文字功能, 所以就想到项目中必须要加上文字过滤的功能了。 去年做的项目也有评论等功能, 等现在的项目没问题就把这个功能加过去!

还是直接上代码:

//获取关键字数组
func GetKeyWordsList() []string {
    file1, err := os.OpenFile("../conf/words_filter.txt",         os.O_RDWR|os.O_APPEND|os.O_CREATE, os.ModeType)
    if err != nil {
        panic(err)
    }
    defer file1.Close()
    // 使用ioutil读取文件所有内容
    b, err := ioutil.ReadAll(file1)
    if err != nil {
        panic(err)
    }
    a := strings.Replace(string(b),"\r\n", "\n", -1)
    return strings.Split(a, "\n")
}

当时由于仅按照\n进行拆分。 得到的行数没问题, 可是结果始终不尽人意, 这段需要注意一下拆分。

//将传入字符串替换为*
func GetStar(str string) string {
    if len(str) <= 0 {
        return ""
    }

    result := ""

    slen := []rune(str)
    for i := 0; i < len(slen); i++ {
        result += "*"
    }

    return result
}

这段的坑是需要rune处理字符串, 不然在Golang中一个中文字符是3长度, 这段需要注意一下处理中文长度的问题。

就到这了, 希望对各位有所帮助
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值