golang文件中超过2的次数 字符串

Gabriel · · 134 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

package main 

import (
    "fmt"
    "bufio"
    "os"
)

func main() {
    counts := make(map[string]int)

    files :=os.Args[1:] // 接收命令上上的参数
    fmt.Println(len(files))
    if (len(files)) == 0 {
        countLine(os.Stdin,counts)
    } else {
        for _,arg :=range files {
            f,err :=os.Open(arg) //打开文件
            if err != nil {
                fmt.Fprintf(os.Stderr,"dup2:%v\n",err)
                continue
            }
            countLine(f,counts)
            f.Close()
        }

        for line,n := range counts {
            if n>1 {
                fmt.Printf("%d\t%s\n",n,line)
            }
        }
    }
}

func countLine(f *os.File,counts map[string]int) {
    input := bufio.NewScanner(f)
    for input.Scan() {
        if input.Text() == "stop" {break}
        counts[input.Text()]++
    }

    for line, n := range counts {
        if n > 1 {
            fmt.Printf("%d\t%s\n", n, line)
        }
    }
}

创建 1.txt 2.txt
然后在 txt 文件中,输入字符串,得换行
windows 环境输入 go run ./main.go 1.txt 2.txt


有疑问加站长微信联系(非本文作者)

本文来自:Segmentfault

感谢作者:Gabriel

查看原文:golang文件中超过2的次数 字符串

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077

134 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传