关于golang:golang文件中超过2的次数-字符串

33次阅读

共计 638 个字符,预计需要花费 2 分钟才能阅读完成。

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

正文完
 0