如何从50000个html文件中删除行

Jav*_*per 1 algorithm file

这个问题在采访中被问到,并且不确定堆栈溢出是否是正确的地方.

鉴于50000个html文件,我们需要删除所有出现的电话号码.

我回答说,我会读取文件,解析它并在过滤后写下另一个没有电话号码的文件.

例如:

while ( line = br.readline != null) {
   if line does not have phone number
      write line to another file.
}
Run Code Online (Sandbox Code Playgroud)

此外,由于我们有50000个文件,是否应该涉及多线程元素?

有更好的想法吗?标准方案?

das*_*ght 5

面试问题分为两大类 - 一类用于测试您对特定技术的了解,另一类用于了解您的思维过程.这个问题听起来像第二个变种.

一旦你提出解决方案,面试官可能应该询问有关你的代码的更多问题:

  • 是否会捕获电话号码的所有实例? - 你可能会认为"是"
  • 电话号码分成多行怎么样?HTML并不关心,对吧?- 您应该解释如何修改您的解决方案以适应'\n'中间位置的电话号码
  • 标记怎么样,你会在中间找到带有HTML标签的电话号码吗? - 您应该解释如何更改解决方案以处理标记.HTML解析器可能对执行此任务很有用.
  • 如果只有20%的文件包含电话号码怎么办? - 您应该解释该程序将受I/O限制,以及如何通过在开始写入之前搜索第一个匹配项来优化写入.

谈话可以继续进行.最后,面试官应该能够很好地了解您在HTML,文件I/O和字符串处理方面的技能.一个好的答案可能包括上面提到的大多数技术.