当从前到后出现覆盖情况时,请考虑从后往前!!!
替换空格
http://www.nowcoder.com/questionTerminal/4060ac7e3e404ad1a894ef3e17650423
调用系统函数:s.replace()
创建新的字符串,遇到空格时追加"%20"
原地修改,从后往前,需要首先知道空格的个数。
/** * 将一个字符串中的每个空格替换成“%20” * @param str 字符串 * @return 替换后的字符串 */ public String replaceSpace(StringBuffer str) { int numOfSpace=0; int originLength= str.length(); for(int i=0;i<originLength;i++){ if(str.charAt(i)==' '){ numOfSpace++; } } int newLength=originLength+numOfSpace*2; str.setLength(newLength); for(int i=originLength-1,j=newLength-1;i>=0&&j>=i;i--){ char c=str.charAt(i); if(c==' '){ str.setCharAt(j--,'0'); str.setCharAt(j--,'2'); str.setCharAt(j--,'%'); }else { str.setCharAt(j--,c); } } return str.toString(); }