zoukankan      html  css  js  c++  java
  • 替换空格

     1 package algorithms;
     2 
     3 /**
     4  *     请实现一个函数,将一个字符串中的每个空格替换成“%20”。 
     5  *     例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
     6  * 
     7  */
     8 //先统计出字符串中空格的数量  确定出新串的长度(原串长度+空格数量*2)
     9 //举一反三:合并两个数组时,如果从前往后复制每个数字则需要重复移动数字多次,
    10 //那么我们可以考虑从后往前复制,这样就能减少移动的次数,从而提高效率
    11 public class ReplaceSpace {
    12     public String replaceSpace(StringBuffer str) {
    13         if (str.length() == 0)
    14             return "";
    15         char[] oldStr = str.toString().toCharArray();
    16         // 统计出字符串中空格的数量
    17         int count = 0;
    18         for (int i = 0, len = oldStr.length; i < len; i++) {
    19             if (oldStr[i] == ' ')
    20                 count++;
    21         }
    22         char[] newStr = new char[oldStr.length + count * 2];
    23         int j = 0;
    24         for (int i = 0, len = oldStr.length; i < len; i++) {
    25             if (oldStr[i] == ' ') {
    26                 newStr[j] = '%';
    27                 newStr[++j] = '2';
    28                 newStr[++j] = '0';
    29             } else {
    30                 newStr[j] = oldStr[i];
    31             }
    32             j++;
    33         }
    34         String s = new String(newStr);
    35         return s;
    36     }
    37 }
    38 
    39 
    40 /*    看题目要求是否一定要在原字符串上进行操作
    41  * 
    42  * public String replaceSpace(StringBuffer str) {
    43     if(str==null){
    44         return null;
    45     }
    46    StringBuilder newStr = new StringBuilder();
    47     for(int i=0;i<str.length();i++){
    48         if(str.charAt(i)==' '){
    49             newStr.append('%');
    50             newStr.append('2');
    51             newStr.append('0');
    52         }else{
    53             newStr.append(str.charAt(i));
    54         }
    55     }
    56     return newStr.toString();
    57 }*/
  • 相关阅读:
    轻松记账方法(A)
    个人学习进度(第八周)
    个人学习进度(第八周)
    Web版四则运算
    个人学习进度(第七周)
    个人学习进度(第六周)
    数组的子数组和最大值
    个人学习进度(第五周)
    个人学习进度(第四周)
    个人学习进度(第三周)
  • 原文地址:https://www.cnblogs.com/ustc-anmin/p/10630426.html
Copyright © 2011-2022 走看看