题目描述 将一个字符串中的空格替换成 "%20"。

示例

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

思路:每次变化都会让字符串增加两个位置,先找出所有需要添加位置的个数,加到最后。然后建立一个p1指向原字符串尾部,p2指向新字符串尾部。将p1粘贴到p2位置,遇到' '处理即可。

代码:

public class Five {
    public void replace(StringBuffer sb) {
        int p1=sb.length()-1;
        for(int i=0;i<p1;i++)
            if(sb.charAt(i)==' ') 
                sb = sb.append("  "); 
        int p2 = sb.length()-1;
        for(int i=p1;i>=0;i--) {
            if(sb.charAt(i)!=' ') {
                sb.setCharAt(p2--, sb.charAt(i));
            }else {
                sb.setCharAt(p2--, '0');
                sb.setCharAt(p2--, '2');
                sb.setCharAt(p2--, '%');
            }
        }
        System.out.println(sb);
            
        }
        
    } 

总结:不熟悉String StringBuffer StringBuilder 可变/不可变

StringBuffer api


dlpansr
1 声望0 粉丝