一些评论;
- 您仅突出显示搜索字符串的 第一次 出现。
- 您认为小写匹配是可以的。除非将此要求指定为必要,否则最好提供两种方法,一种尊重大小写,一种忽略大小写。
- 如果其中任何一个为空,我可能会检查给定的参数并抛出NPE。这将是我的方法所做的第一件事。我将在javadoc中明确记录此行为。
- 你的方法妈妈不好;
findSubstringInQuery
的主要任务不是寻找,而是突出显示,并且该inQuery
部分是多余的。只需调用该方法,highlight
或者highlightIgnoreCase
如果您要考虑一个highlight
尊重的情况。 - 您的方法参数名称错误。我已经看过您方法的签名十次了,但仍然必须看一下方法主体以提醒自己,哪个arg是搜索项,哪个是要搜索的文本。给他们打电话
searchTerm
和text
。 - 生产代码不使用默认程序包。
- 生产代码不使用
System.out.println()
。 - JavaDoc的需要得到改进,它需要告诉用户 的一切 ,他们需要了解的代码。
- 我会考虑对没有类变量的类使用静态方法。
- 我还将考虑允许用户指定自己的开始和结束突出显示标记(如果这样做,我将不会使用静态方法)。
trim()
除非这被指定为要求,否则我不会。如果我这样做了,那么显然此行为将记录在javadoc中。
我不会担心搜索所用的算法,Knuth-Morris-Pratt看起来不错,但是除非工作规范特别要求字符串搜索的经验/专长,否则他们不希望您知道并实现它。



