在刷题的时候碰到替换空格问题,分享一种不同的解法。
题目描述
请实现一个函数,将一个字符串中的空格替换成“%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;
}
}