在刷題的時候碰到替換空格問題,分享一種不同的解法。
題目描述
請實現一個函數,將一個字符串中的空格替換成“%20”。例如,當字符串爲We Are Happy.則經過替換之後的字符串爲We%20Are%20Happy。
解題思路
我看到的問題中,函數參數爲StringBuffer類型。我的思路是這樣的:現將StringBuffer類型的字符串轉換成String類型的,通過split函數將字符串分割成字符串數組,將分割好的字符串中間拼接上“%20”即可得到最後的結果。這樣存在一個問題就是當原字符串的結尾存在空格時,split函數不會將最後的空格分割後單獨作爲數組的一項,所以最後還需要將字符串結尾有空格的情況處理一下。
代碼
import java.util.*;
public class Solution {
public String replaceSpace(StringBuffer str) {
String res = new String(str);
String[] arr = res.split(" ");
String fin = "";
int len = arr.length;
for( int i=0; i<len-1; i++)
{
fin += arr[i]+"%20";
}
if(len>=1)
fin += arr[len-1];
//還需要考慮字符串結尾有空格的情況
int strLen = res.length();
for( int i=strLen-1; i>=0; i--)
{
if(res.charAt(i)==' ')
fin += "%20";
else
break;
}
return fin;
}
}