public static void ReplaceBlank(char[] target, int maxLength)
{
if (target == null || maxLength <= 0)
{
return;
}
// originalLength 为字符串target的实际长度
int originalLength = 0;
int blankCount = 0;
int i = 0;
while (target[i] != '\0')
{
originalLength++;
// 计算空格数量
if (target[i] == ' ')
{
blankCount++;
}
i++;
}
// newLength 为把空格替换成'%20'之后的长度
int newLength = originalLength + 2 * blankCount;
if (newLength > maxLength)
{
return;
}
// 设置两个指针,一个指向原始字符串的末尾,另一个指向替换之后的字符串的末尾
int indexOfOriginal = originalLength;
int indexOfNew = newLength;
while (indexOfOriginal >= 0 && indexOfNew >= 0)
{
if (target[indexOfOriginal] == ' ')
{
target[indexOfNew--] = '0';
target[indexOfNew--] = '2';
target[indexOfNew--] = '%';
}
else
{
target[indexOfNew--] = target[indexOfOriginal];
}
indexOfOriginal--;
}
}
替换空格
最新推荐文章于 2022-08-05 16:20:36 发布