用stringbuffer替换字符串的空格

用stringbuffer替换字符串的空格

问题:

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

思路:

  • 注意题目是替换原来字符串
  • 1.替换字符串2.先确定原字符串中空格数3.设置字符串长度4.从后往前遍历,进行替换

解答:

public class Solution {
    public String replaceSpace(StringBuffer str) {
    int lengthOld=str.length();
    int spaceNum=0;
    for(int i=0;i<lengthOld;i++) {  //空格个数
    	if(str.charAt(i)==' ') {   //单引号表示字符
    		spaceNum++;
    	}
    }
    int lengthNew=lengthOld+spaceNum*2;
    str.setLength(lengthNew);
    int indexOld=lengthOld-1;
    int indexNew=lengthNew-1;
    for(;indexOld>=0 && indexOld<lengthNew;--indexOld) {   //&& 短路与  从后往前遍历
    	if(str.charAt(indexOld)==' ') {  
    		str.setCharAt(indexNew--, '0');
    		str.setCharAt(indexNew--, '2');
    		str.setCharAt(indexNew--, '%');
    	}else {
    		str.setCharAt(indexNew--, str.charAt(indexOld));
    	}
    }
    return str.toString();
    }
}
发布了11 篇原创文章 · 获赞 7 · 访问量 4014

猜你喜欢

转载自blog.csdn.net/wusimin432503/article/details/104553098