效率 - 取代句子中间的单词

时间:2014-02-27 18:27:04

标签: java string search performance

我的问题是我有一个很大的字符串,我想将所有“i”改为“我”。但是我不能有效地做到这一点。我知道之前有关于替换String部分的问题,但我不确定什么是最快的方法。

我尝试过某种方式:

A)

if (question.charAt(i)=='i' && question.charAt(i+1)==' ')
{
   question = question.substring(0,i) + 'I' + question.substring(i+1);
}

b)(比尝试a慢100-200倍)

question = question.replace("i ", "I ");

c)(比尝试a慢约100倍)

question = question.replaceAll("i ", "I ");

我从来没有做过多高效的编程,这些都没有削减我需要它的效率。有一种我不知道的更快的方式吗?

1 个答案:

答案 0 :(得分:1)

应该比你的更有效率的解决方案(已经非常有效)如下。

public String convertWord(String word)
{
    StringBuilder sb = new StringBuilder();

    char[] charArr = word.toCharArray();

    for(int i = 0; i < charArr.length; i++)
    {
        // Single character case
        if(charArr[i] == 'i' && (i+1 < charArr.length)  && charArr[i+1] = ' ')
        {
            sb.append('I');
        }
        else
        {   
            sb.append(word.charAt(i));
        }
    }

    return sb.toString();
}