如何在很长的字符串中突出显示第一行不同的行?

How to highlight first different line in a quite long String?

我有几百行的用户可读文件。 每行都很短(~20-30 个符号)。

有时我需要用那个字符串对另一个字符串执行等于操作。

如果字符串不同,我需要找到不同的第一行。当然我可以手动完成:

在循环中找到第一个不同的字符,然后找到前面和后面的 '/n',但从我的角度来看,这段代码并不漂亮。

有没有其他方法可以使用一些外部库来实现它?

不需要任何图书馆,你问的很简单。但它足够独特,任何图书馆都不会拥有它,所以自己写吧。

import java.nio.file.Files;
import java.util.*;

...

Optional<String> findFirstDifferentLine(Path file, Collection<String> rows) throws IOException {
  try (var fileStream = Files.lines(file)) { // Need to close
    var fileIt = fileStream.iterator();
    var rowIt = rows.iterator();
    while (fileIt.hasNext() && rowIt.hasNext()) {
      var fileItem = fileIt.next();
      if (!Objects.equal(fileItem, rowIt.next()) {
        return Optional.of(fileItem);
      }
    }
    return Optional.of(fileIt)
        .filter(Iterator::hasNext)
        .map(Iterator::next);
  }
}