我的问题是我有一个很大的字符串,我想将所有“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 ");
我从来没有做过多高效的编程,这些都没有削减我需要它的效率。有一种我不知道的更快的方式吗?
答案 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();
}