Scala-抓取项目代码中全部代码注释

日前某站代码泄露, 大佬们贴出很多代码中有趣的注释, 于是突发奇想, 写了一个没有用的小程序…

(ps: 某站代码我没看, 你们可, 别瞎说…)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import scala.io.Source
import java.util.regex.Pattern
import java.io.{File, PrintWriter}

object Bi {

def getFile(file:File): Array[File] ={
val files = file.listFiles()
.filter(! _.isDirectory)
// 指定要读取什么文件
.filter(t => t.toString.endsWith(".go"))
files ++ file.listFiles()
.filter(f => f.isDirectory
// 指定排除掉什么文件夹
&& f.getName != "vendor")
.flatMap(getFile)
}

def check(s: String): Boolean = {
val pattern = "[\u4e00-\u9fa5]+"
val p = Pattern.compile(pattern)
val result = p.matcher(s)
if (result.find()) true else false
}

def main(args: Array[String]): Unit = {
val path = new File("目标文件夹路径")
val writer = new PrintWriter(new File("输出文件路径"))

getFile(path).foreach{ file =>
var flag = false

val text=Source.fromFile(file)
for(line <- text.getLines)
{
if (line.trim.startsWith("//") && check(line)) {
flag = true
writer.println(s"-----$line")
}
}
if (flag) {
// 打印以上注释出自哪个文件
writer.println(file.getPath)
}
text.close
}
writer.close()
}
}
打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2017-2023 王丹鹏
  • Powered by Hexo Theme Ayer
  • 冀ICP备15029707号

请我喝杯咖啡吧~

支付宝
微信