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

替换空格

时间:2018-10-12 14:14:43      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:函数   计算   实现   tostring   space   else   strong   index   etc   

题目描述

请实现一个函数,将一个字符串中的空格替换成 。例如,当字符串为We Are Happy.则经过替换之后的字符串为We Are Happy。
 
Solution2:
public class Solution {
    public String replaceSpace(StringBuffer str) {
    String s = str.toString();
        char[] ch = s.toCharArray();
        StringBuffer sb = new StringBuffer(); //新建一个StringBuffer 
        for (int i = 0; i < ch.length; i++) {
            if (ch[i] == ‘ ‘) 
                sb.append("%20");
            else 
                sb.append(ch[i]);
        }
        return sb.toString();
    }
}
Solution3://要从后往前替代,从前往后的话效率很低(遇到空格后每个字符都要移动)
public class Solution {
    public String replaceSpace(StringBuffer str) {
      int numSpace = 0;
           for (int i = 0; i < str.length(); i++) {
              if (str.charAt(i) == ‘ ‘)
                  numSpace++; //计算空格的个数
           }
           int indexOld = str.length() - 1; //原始字符串最后一个字符的下标
           int newLength = str.length() + 2 * numSpace; //新字符串长度,每遇到空格,长度加2(空格=> )
           int indexNew = newLength - 1; //新字符串最后一个字符的下标
           str.setLength(newLength); //一定记住要扩大str的长度
           for (; indexOld >= 0; indexOld--) { //从后往前扫描
              if (str.charAt(indexOld) == ‘ ‘) {
                  str.setCharAt(indexNew--, ‘0‘);
                  str.setCharAt(indexNew--, ‘2‘);
                  str.setCharAt(indexNew--, ‘%‘);
                  numSpace--;
                     if (numSpace == 0) { //说明空格都没了,前面的字符就不用动了
                       break;
                        }
                  } else 
                  str.setCharAt(indexNew--, str.charAt(indexOld));
           }
           return str.toString();
    }
}

替换空格

标签:函数   计算   实现   tostring   space   else   strong   index   etc   

原文地址:https://www.cnblogs.com/MarkLeeBYR/p/9777337.html

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