筆記 替換字串中的空格

2021-06-29 06:39:28 字數 1282 閱讀 3098

總結

首先遍歷字串,得到字串中的空格數,用到string的charat方法

然後計算得到新字元char陣列的長度,等於原字元長度加上兩倍的空格數

再將字串轉換為字元陣列移到result字元陣列中,用到system.arraycopy函式

然後定義兩個index,分別指向原字元長度的尾巴,以及新字元長度的尾巴

int indexoforgchars=orglength-1;

int indexofnewchars=newlength-1;

從後往前移動,這樣可以保證移動字元的數目最少,遇到空格字元,把%20插入,這時候只有indexofnewchars動,而indexoforichars不動

非空格字元,兩個index都動

package replaceblank;

public

class replaceblank

}return count;

}public

static

void

main(string args)

static

void replaceblank(string string)

int orglength=string.length();

int numofblank=0;

for (int i = 0; i < string.length(); i++)

}int newlength=orglength+2*numofblank;

char tempchars=new

char[newlength];

system.arraycopy(string.tochararray(), 0, tempchars, 0, string.length());

system.out.println("orglength:"+orglength+"\n"+"numofblank:"+numofblank);

int indexoforgchars=orglength-1;

int indexofnewchars=newlength-1;

while (indexoforgchars>=0&&indexofnewchars!=indexoforgchars) else

indexoforgchars--;

}system.out.println(tempchars);

}}

字串中的替換空格

題目 把字串中的每個空格替換成 20 思路 直觀的做法是從頭到尾掃瞄字串,遇到空格就做替換,然而由於將乙個字元替換成3個字元,我們必須將空格後面的所有字元都後移兩個位元組。這樣沒次遇到空格,都會移動字元。對於這種問題,當字串 或陣列 長度變大,從前往後操作時移動次數多時,可以考慮從後往前操作。ps ...

替換字串中的空格

這是乙個關於字串的題目,解決這個問題有如下方法。最直觀的方法,利用輔助空間,開始遍歷原字串,是空格則在輔助空間中用 20 字串替代,不是則直接複製到輔助空間中。此方法時間複雜度為o n 空間複雜度為o n 因為需要遍歷原字串,所以時間複雜度不能縮減。如果考慮空間複雜度為o 1 有一種從空間複雜度概念...

替換字串中的空格

替換字串中的空格的方法有很多,在這裡我們實現一種時間複雜度與空間複雜度都為o n 的方法,使用c 語言實現。例如字串talk is cheap show me the code,我們要將其替換為talk is cheap show me the code,並且列印到螢幕上。方 述 定義乙個字元型指標...