public class replaceDemo {
public static void main(String[] args) {
String s = "We are happy.";
Replace(s,"%20");
}
public static void Replace(String old,String replaced){
int blankSpace = 0;
char[] oldChar = old.toCharArray();
//确定原来数组中空格的个数
for(int x=0;x<oldChar.length;x++){
if(oldChar[x]==' '){
blankSpace++;
}
}
//当无空格时,退出该方法
if(blankSpace==0){
return ;
}
char[] replacedChar = replaced.toCharArray();
//由上面空格的个数以及要替换字符串的长度从而可以确定新数组的长度
char[] newChar = new char[oldChar.length+(replacedChar.length-1)*blankSpace];
//定义一个变量,指向原串数组最后一个元素
int pOld = oldChar.length-1;
//定义另一个变量,指向新数组的最后一个元素
int pNew = newChar.length-1;
while(pOld>=0){
//当原数组所指向的内容为空格时
if(oldChar[pOld]==' '){
pOld--;
//对应的新数组所指处存入要替换的字符数组的最后一位,再把指向向前移动,直至要替换的字符数组存入完毕
for(int i=replacedChar.length-1;i>=0;i--){
newChar[pNew]=replacedChar[i];
pNew--;
}
}else{
newChar[pNew--]=oldChar[pOld--];
}
}
for(char ch:newChar){
System.out.print(ch);
}
}
}
请实现一个方法,把字符串中的每个空格替换成 %20 ,例如,输入"We are happy.",则输出"We%20are%20happy."
最新推荐文章于 2023-04-22 17:44:22 发布