0

我想用java中的一些代码替换一个特殊字符。文本太大,我必须关心性能。最好的可能性是什么?

更多信息:输入将是 HTML 文件,其中包含大量文本,我应该将所有“z”(在文本中出现的概率很小)替换为(在 a 中出现的概率很高)文本)

4

2 回答 2

0

您应该使用BufferedReader阅读“巨大”文本,并且可以逐行阅读文本文件,而不会出现性能问题。也看到这个

于 2013-06-29T20:00:07.677 回答
0

您不能替换字符串中的文本,因为字符串是不可变的。因此,您必须创建字符串的副本。我会做这样的事情:

public final class Codec {

  public static void encode(InputStream in, OutputStream out, char special, char quote) {
    char current;
    while ( ( current = in.read() ) != -1 ) {
      if ( current == special || current == quote ) { out.write(quote); }
      out.write(current);
    }
  }
}

如果文本真的很大并且不适合内存,则流是正确的。

如果它只是字符串使用 String.replace(...)

于 2013-06-29T20:18:16.407 回答