-1
我的问题是,我有一个大字符串,我想把所有的“我”改成“我”。但是我无法有效地做到这一点。我知道以前有关于替换字符串部分的问题,但我不确定什么是最快的方法。效率 - 替换句子中间的词
某种类型的我曾尝试:
一)
if (question.charAt(i)=='i' && question.charAt(i+1)==' ')
{
question = question.substring(0,i) + 'I' + question.substring(i+1);
}
B)(100-200x慢于尝试)
question = question.replace("i ", "I ");
C)(大约比尝试a慢100倍x)
question = question.replaceAll("i ", "I ");
我从来没有做过很多高效的编程,这些都不能削减它的效率,我需要这样做。有没有更快的方式,我不知道?
通常,对于中等长度,扫描的成本的一个字符串,使用任何机构,将由成本分手(二者,并且更重要的是,“隐藏”在GC周期测量)淹没并重新构造String对象。 –
请注意,上面的示例将苹果与桔子进行比较,因为第一种情况不会扫描以找到要替换的位置。 –
我希望你注意加热JVM,并在像这样的微基准标记时将平均值作为大量运行。 Microbenchmarks是非常难以得到正确的。 –