题目:请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“I am Tom”,则输出“I%20am%20Tom”。
public class ReplaceBlank {
public void replaceBlank(char string[], int length)
{
if(string == null || length <= 0)
return;
int originalLength = 0;
int numberOfBlank = 0;
int i = 0;
System.out.println(string);
while(string[i] != '\0')
{
++ originalLength;
if(string[i] == ' ')
++ numberOfBlank;
++ i;
}
int newLength = originalLength + numberOfBlank * 2;
if(newLength > length)
return;
int indexOfOriginal = originalLength;
int indexOfNew = newLength;
while (indexOfOriginal >= 0 && indexOfNew > indexOfOriginal) {
if(string[indexOfOriginal] == ' ')
{
string[indexOfNew --] = '0';
string[indexOfNew --] = '2';
string[indexOfNew --] = '%';
}
else
{
string[indexOfNew --] = string[indexOfOriginal];
}
-- indexOfOriginal;
}
System.out.println(string);
}
public static void main(String[] args) {
char [] originalStr = new char[30];
originalStr[0] = 'I';
originalStr[1] = ' ';
originalStr[2] = 'a';
originalStr[3] = 'm';
originalStr[4] = ' ';
originalStr[5] = 'T';
originalStr[6] = 'o';
originalStr[7] = 'm';
originalStr[8] = '.';
new ReplaceBlank().replaceBlank(originalStr, 30);
}
}
运行结果: