码迷,mamicode.com
首页 > 其他好文 > 详细

替换空格

时间:2019-02-25 13:33:25      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:个数   实现   string   ret   ring   kde   buffer   ldl   file   

题目描述

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

题解

1、最简单的解题方法。(声明一个新的StringBuffer str,遍历原来的字符串一次添加到str中)

public String replaceSpace(StringBuffer str) {
        StringBuffer newStr = new StringBuffer();
        for(int i = 0; i < str.length(); i++) {
            if(str.charAt(i) == ‘ ‘)
                newStr.append("%20");
            else
                newStr.append(str.charAt(i));
        }
        return newStr.toString();
}

2、在原来的字符串上移动字符。(从后向前移动。先遍历空格个数,设置字符串的长度,从后向前遍历移动字符串)

public String replaceSpace(StringBuffer str) {
        int spaceNum = 0;
        for(int i = 0; i < str.length(); i ++) {
            if(str.charAt(i) == ‘ ‘)
                spaceNum++;
        }
        int oldLength = str.length();
        int newLength = str.length() + spaceNum * 2;
        str.setLength(newLength);
        while(newLength > 0 && oldLength > 0) {
            if(str.charAt(--oldLength) == ‘ ‘) {
                str.setCharAt(--newLength,‘0‘);
                str.setCharAt(--newLength,‘2‘);
                str.setCharAt(--newLength,‘%‘);
            } else
                str.setCharAt(--newLength,str.charAt(oldLength));
        }
        return str.toString();
}

参考题解:https://www.nowcoder.com/profile/980167/codeBookDetail?submissionId=1523034

替换空格

标签:个数   实现   string   ret   ring   kde   buffer   ldl   file   

原文地址:https://www.cnblogs.com/wisdomzhang/p/10430300.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!