替換空格(字串)

2021-08-09 19:32:42 字數 1433 閱讀 6764

思路一:利用string類的replaceall方法

public class solution 

}

思路二:

*將字串轉換為字元陣列

*建立乙個新的stringbuffer的物件,遍歷字元陣列,將不為空格的字元直接存入;當遇到空格時,存入%20

public class solution 

return strb.tostring();

}}

思路三:利用陣列

從前往後替換,後面的字元要不斷往後移動,要多次移動,所以效率低下。

從後往前,先計算需要多少空間,然後從後往前移動,則每個字元只為移動一次,這樣效率更高一點。

(1)string類的tochararray()方法,將字串轉換為字元陣列

(2)string類的valueof()方法,將char型別的陣列轉換為字串

public class solution 

int newlength = originallength + numberofblank * 2;

char res = new char[newlength];

int indexoforiginal = originallength - 1;

int indexofnew = newlength - 1;

while (indexoforiginal >= 0)

else res[indexofnew--] = strchar[indexoforiginal];

--indexoforiginal;

}return string.valueof(res);

}}

思路四:和思路三一樣,不轉換為陣列,直接利用stringbuffer類的方法。

public class solution 

int newlength = originallength + numberofblank * 2;

str.setlength(newlength);

int indexoforiginal = originallength - 1;

int indexofnew = newlength - 1;

while (indexoforiginal >= 0)

else str.setcharat(indexofnew--, str.charat(indexoforiginal));

--indexoforiginal;

}return str.tostring();

}}

字串替換空格

點 抽象問題簡化問題 題意 乙個字串,比如 aaa baea erwe dsa dsa f a 替換其中的空格字元為 20 劍指offer面試題4 思路 這個問題的點在於,如果正常從頭到尾替換的話,每乙個被替換空格,它後面的全部字串都需要做整體移動 所以要設法想出,怎麼能夠減少字串移動 非空格字元需...

字串 替換空格

方法 從後往前替換,先求出字串總長度 空格數 新字串長度,然後兩個指標分別指向原始字串末尾和新字串末尾,依次替換,遇到空格時則替換為 0 2 include includevoid replaceblank char string,int length int newlength originall...

字串替換空格

思路 從字串的後面開始插入替換字元 首先遍歷整個字串得到插入後的總長度和空格的個數,再用兩個指標分別指向 p1指向替換前字串的末尾,p2指向替換後字串的末尾 當p1指向不是空格時,將其內容插入p2所在記憶體 當p1指向空格,用字元 20 插入 當p1 p2,或p1指向字串頭時 所有空格均已替換 則結...