import java.util.Arrays;
public class ReplaceBlank {
//替换空格,假设原始字符数组空间足够
public static void replaceBlank(char[] string, int length){
if (string == null || length <= 0)
return;
int originalCount = 0;
int blankCount = 0;
int newCount = 0;
//计数
int i =0;
while (string[i] != '\0'){
originalCount++;
if (string[i] == ' ')
blankCount++;
i++;
}
newCount = originalCount + blankCount * 2;
//检查内存是否足够
if (newCount > length)
return;
//替换
int indexOfOriginal = originalCount;
int indexOfNew = newCount;
while(indexOfOriginal >= 0 && indexOfNew > indexOfOriginal){
if (string[indexOfOriginal] != ' ')
string[indexOfNew--] = string[indexOfOriginal];
else{
string[indexOfNew--] = '0';
string[indexOfNew--] = '2';
string[indexOfNew--] = '%';
}
indexOfOriginal--;
}
}
//测试用例
public static void main(String[] args){
String str = "my name is zjp";
char[] string = Arrays.copyOf(str.toCharArray(), 100);
ReplaceBlank.replaceBlank(string, 100);
StringBuilder stringBuilder = new StringBuilder();
for (char c : string)
stringBuilder.append(c);
System.out.println(stringBuilder.toString());
}
}
替换字符串中空格(Java)
最新推荐文章于 2023-07-20 11:39:21 发布
本文介绍了一个Java方法,用于将字符串中的空格替换成%20,适用于URL编码等场景。该方法首先计算原始字符串中空格的数量,然后根据空格数量计算新的字符串长度,最后从后往前遍历字符串,遇到空格则替换为%20,否则保持字符不变。
355

被折叠的 条评论
为什么被折叠?



