给定一个字符串,需要将其中的空格全部替换为%20
使用从后向前遍历的方法,如图所示。
public static string replacestr(string str)
{
//计算空格数量
if (str == null || str.Length == 0) return str;
int count = 0;
foreach(var item in str)
{
if(item == ' ')
{
count++;
}
}
//设置i,j
// h e l l o _ w o r l d
// h e l l o % 2 0 w o r l d
int i = str.Length-1;
int j = str.Length + count*2-1;
char[] ch = new char[j+1];
while (i >= 0 && j >= i)
{
if (str[i] == ' ')
{
ch[j--] = '0';
ch[j--] = '2';
ch[j--] = '%';
}
else { ch[j--] = str[i]; }
i--;
}
return new string(ch);
}