我想用java中的一些代码替换一个特殊字符。文本太大,我必须关心性能。最好的可能性是什么?
更多信息:输入将是 HTML 文件,其中包含大量文本,我应该将所有“z”(在文本中出现的概率很小)替换为(在 a 中出现的概率很高)文本)
我想用java中的一些代码替换一个特殊字符。文本太大,我必须关心性能。最好的可能性是什么?
更多信息:输入将是 HTML 文件,其中包含大量文本,我应该将所有“z”(在文本中出现的概率很小)替换为(在 a 中出现的概率很高)文本)
您应该使用BufferedReader
阅读“巨大”文本,并且可以逐行阅读文本文件,而不会出现性能问题。也看到这个。
您不能替换字符串中的文本,因为字符串是不可变的。因此,您必须创建字符串的副本。我会做这样的事情:
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(...)