5. 替换空格[java]

题目描述 在线编程

将一个字符串中的空格替换成 "%20"。编程

 

Input: "A B" Output: "A%20B"

解题思路

要求在原字符串上改动,要将空格替换成 "%20",即每有1个空格字符串长度增长2;app

1.先给原字符串扩展长度,每有1个空格长度增长2个单位spa

2.用双指针法,指针p2指向扩展后字符串尾,指针p1指向原字符串的尾,从后往前遍历指针

若p1==空格时,p2依次往前填充"02%";若p1!=空格,p2填充p1指向的字符;双指针继续往前遍历.code

public class Solution { public String replaceSpace(StringBuffer str) { int p1=str.length()-1; for(int i=0;i<=p1;i++){ if(str.charAt(i)==' ') str.append("  "); } int p2=str.length()-1; while(p1>=0&&p2>p1){ char c=str.charAt(p1--); if(c==' '){ str.setCharAt(p2--,'0'); str.setCharAt(p2--,'2'); str.setCharAt(p2--,'%'); }else{ str.setCharAt(p2--,c); } } return str.toString(); } }
相关文章
相关标签/搜索