题目:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
例如:
输入:s = "We are happy."
输出:"We%20are%20happy."
最简单的方法就是用
s.replace(" ", "%20");
但是这个leetcode题解里面都说面试的时候不让用这个函数,只能手写循环了
以为String不支持修改,所以要重定义一个字符数组array
长度是原数组长度的三倍。最差情况就是原字符串全是空格,一个空格要替换三个字符,所以长度要扩充三倍
之后循环遍历原字符串,遇到空格则在array中添加三个字符"%20",否则添加原字符
class Solution {
public String replaceSpace(String s) {
int iLength = s.length();
char [] cArray = new char[iLength * 3];
char c;
int iNewLength = 0;
for(int i = 0; i< iLength;i++ )
{
c = s.charAt(i);
if(c == ' ')
{
cArray[iNewLength++] = '%';
cArray[iNewLength++] = '2';
cArray[iNewLength++] = '0';
}
else
{
cArray[iNewLength++] = c;
}
}
String sReturn = new String(cArray,0,iNewLength);
return sReturn;
}
}